Создание сложных вариантов записей с потомками в рельсах

У меня есть интересная головоломка, я пытался найти более элегантное решение.

У меня есть 2 модели. Surveys а также Questions которые связаны в has_many через отношение QuestionLogs, has_many :questions, :through => :question_logs

Это работает нормально, моя проблема в том, что у меня есть потребность в различных опросах. например. У меня может быть 3 опроса, которые сделаны для разных регионов, скажем, в Чикаго, Лос-Анджелесе и Остине. Они разделяют 90% общих вопросов, но могут заменить один или два вопроса.

На данный момент я начинаю с одного опроса (с уникальным sid, определяемым region_id), опроса A, и когда он завершится, я создаю дубликат опроса B (тот же sid, другой region_id), который создает 10 новых Вопросов для тех же самых вопросов., а затем я заменяю 1 или 2 вопроса в зависимости от региона. (Например, если у меня есть опрос с 2 вариантами, с 10 вопросами, я получу 30 Вопросников для тех же вопросов, которые почти идентичны).

Это отлично работает. У меня вопрос, есть ли альтернативный способ избежать этого дублирования QuestionLogs. Например, способ обработки вариаций модели и ее зависимостей, запись различий, а не простое дублирование.

К вашему сведению, в каждом опросе ровно 10 вопросов, вопросы создаются отдельно перед опросом, а модель довольно сложная, например. у него есть ответы и т. д.

Любые предложения или направления будут с благодарностью, спасибо!

0 ответов

Другие вопросы по тегам