У меня есть две модели, Survey
и Question
. A Survey
has_many :questions
и a Question
belongs_to :survey
. Я знаю, что может дублировать экземпляр Survey
, выполнив следующие действия:ActiveRecord .dup on Association
old_survey = Survey.last
new_survey = old_survey.dup
Теперь new_survey
будет идентичен old_survey
за исключением того, что его атрибут id
является nil
. Я хотел бы знать, как я могу дублировать связанные объекты, желательно без повторения через них или установки стороннего драгоценного камня.
Я хотел бы сделать что-то вроде этого:
old_survey = Survey.last
new_survey = old_survey.dup
new_survey.questions = old_survey.questions.dup
old_survey.save!
Приведенный выше код не работает. Если я звоню new_survey.questions.pluck(:id)
, я вижу, что идентификаторы соответствуют old_survey.questions.pluck(:id)
, что нежелательно.
Очевидно, я мог бы перебирать только old_survey.questions
, но я бы хотел найти более эффективный способ этого.
'желательно без повторения через них или установки стороннего драгоценного камня. –
Я бы (к сожалению) согласился. Это не идеально, но он работает без добавления зависимости. – ACIDSTEALTH