【发布时间】:2011-10-06 10:03:03
【问题描述】:
我目前正在克隆这样的单级关联:
class Survey < ActiveRecord::Base
def duplicate
new_template = self.clone
new_template.questions << self.questions.collect { |question| question.clone }
new_template.save
end
end
这样会克隆Survey,然后克隆与该调查关联的Questions。美好的。效果很好。
但我遇到的问题是每个问题has_manyAnswers。所以Survey has_many Questions which has_many Answers。
我不知道如何正确克隆答案。我试过这个:
def duplicate
new_template = self.clone
self.questions.each do |question|
new_question = question.clone
new_question.save
question.answers.each do |answer|
new_answer = answer.clone
new_answer.save
new_question.answers << answer
end
new_template.questions << question
end
new_template.save
end
但是实际上替换原始答案然后创建新答案会造成一些奇怪的事情,因此 ID 停止正确匹配。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord associations clone