Rails - 单一形式的多个模型 - 这是正确的方法吗?

时间:2011-09-21 03:23:14

标签: ruby-on-rails

我正在将一个php应用程序移植到Rails 3,并且有一个关于多模型表单以及我如何更新的问题。

我有一个包含以下值的表单:

menu_header[2][name]="bar menu sub menu"
menu_header[3][name]="bar menu sub menu2"
menu_header[4][name]="bar menu sub menu 3"

通过日志中的参数:

  "menu_header"=>{"2"=>{"name"=>"bar menu sub menu"}, "3"=>{"name"=>"bar menu sub menu2"}, "4"=>{"name"=>"bar menu sub menu 3"}}

他们发布的方法是:

params[:menu_header].each do |key, item| 
  @menu_header=MenuHeader.find(key)
  @menu_header.update_attributes(item)
end

这样可行,但更新内容看起来很难看。是否有不同/更好的方法来做到这一点?

THX

1 个答案:

答案 0 :(得分:0)

如果您希望改进更新代码的外观,则可以将其重写为:

params[:menu_header].each { |key, item| MenuHeader.find(key).update_attributes(item) }

注意:有关于在轨道中处理多个对象的讨论:Multiple objects in a Rails form