从belongs_to模型批量更新has_many关系模型

时间:2011-06-20 12:45:22

标签: ruby-on-rails

class Project < ActiveRecord::Base
  has_many :pages
  attr_accessible :name, :class_name, :content, :style

  def bulk_update_pages(attributes)
    for a in attributes do
      pages.find(a['id'].to_i).update_attributes(a) if pages.exists?(a['id'])
    end
  end

end

class Page < ActiveRecord::Base
  belongs_to :project
end

这是从项目批量更新页面的好方法吗? Project.find(session[:ProjectId]).bulk_update_pages(params)

2 个答案:

答案 0 :(得分:1)

尝试将关联设置为
has_many :pages, :autosave => true

“如果将:autosave选项设置为true,则Rails将保存所有已加载的成员,并在保存父对象时销毁标记为销毁的成员”Rails指南4.1.2

http://guides.rubyonrails.org/association_basics.html

答案 1 :(得分:1)

我认为你最好使用嵌套表格:
http://railscasts.com/episodes/196-nested-model-form-part-1