Rails3 - 单一形式的多个模型 - 这是做到这一点的正确方法吗?

Rails3 - 单一形式的多个模型 - 这是做到这一点的正确方法吗?

问题描述:

我正在将一个php应用程序移植到Rails 3,并且有一个关于多模型表单的问题以及我如何更新。Rails3 - 单一形式的多个模型 - 这是做到这一点的正确方法吗?

我有以下值形式:

"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 

该作品

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" 
通过在日志中PARAMS

但更新一块看起来很丑陋。有没有不同的/更好的方法来做到这一点?

THX

如果你想提高你的更新代码看上去比你可以将其改写为:

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

注:有一个关于这里的铁轨处理多个对象讨论:Multiple objects in a Rails form