我已经谷歌搜索了一段时间,但没有找到任何答案
我有模型称为答案,调查,问题。现在,在一项调查中,最多可以有200个问题,因此一项调查可以在一个页面中生成多达200个答案模型。
问题是:如何在单个db-action中保存我的答案数组,而不是遍历数组并单独保存每个元素,这需要相对较长的时间?
答案 0 :(得分:1)
您可以传递'belongs_to'关系:自动保存符号。这将导致在保存父项时自动保存答案。那样的东西可能就是你想要的东西:
class Survey < ActiveRecord::Base
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :survey, :autosave
has_one :answer
end
class Answer < ActiveRecord::Base
belongs_to :question, :autosave
end
我不知道这将如何在幕后执行,但它将允许ActiveRecord优化SQL,并且无需您明确地在关系上进行迭代。
答案 1 :(得分:0)
无论您做什么,都不要忘记在事务中包装多个插入内容。真的会加快速度。