我正在将一个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
答案 0 :(得分:0)
如果您希望改进更新代码的外观,则可以将其重写为:
params[:menu_header].each { |key, item| MenuHeader.find(key).update_attributes(item) }
注意:有关于在轨道中处理多个对象的讨论:Multiple objects in a Rails form