如何在rails中保存一组模型

时间:2009-10-20 09:42:09

标签: ruby-on-rails

我已经谷歌搜索了一段时间,但没有找到任何答案

我有模型称为答案,调查,问题。现在,在一项调查中,最多可以有200个问题,因此一项调查可以在一个页面中生成多达200个答案模型。

问题是:如何在单个db-action中保存我的答案数组,而不是遍历数组并单独保存每个元素,这需要相对较长的时间?

2 个答案:

答案 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)

无论您做什么,都不要忘记在事务中包装多个插入内容。真的会加快速度。