将选择菜单传递到嵌套表单的属性

时间:2012-07-20 05:03:09

标签: ruby-on-rails drop-down-menu nested-forms nested-attributes

我有一个嵌套的表单,其中包含一个选择下拉菜单。

如何将所选项目的ID传递到点击“提交”按钮时提交的属性?

在我的情况下,这就是我的嵌套表格的部分外观:

=select("dish", "menu_id", Menu.all.collect {|r| [ r.name, r.id ] }, {:include_blank => 'Choose a Menu'})  
=f.hidden_field :_destroy
=f.text_field :name, placeholder: "Name"
=f.text_field :price, placeholder: "Price"
=link_to "X", '#', :class => "remove_fields"

当我点击提交按钮时,终端/控制台显示以下内容正在提交到数据库,但您会注意到下拉菜单中的menu_id不属于{{1}因为它与其他两个字段不共享相同的输入dishes_attributesid

name

在HTML源代码中,... "dishes_attributes"=>{"1342759486320"=>{"_destroy"=>"false", "name"=>"Dish 1", "price"=>"32"} ... name输入字段会分配以下priceid

name

但我的<input id="side_dish_dishes_attributes_1342759902918_name" name="side_dish[dishes_attributes][1342759902918][name]" placeholder="Name" size="30" type="text"/> <input id="side_dish_dishes_attributes_1342759902918_price" name="side_dish[dishes_attributes][1342759902918][price]" placeholder="Price" size="30" type="text"/> 下拉列表如下所示:

select

在父<select id="dish_menu_id" name="dish[menu_id]"> <option value="">Choose a Menu</option> <option value="1">Menu 1</option> <option value="2">Menu 2</option> </select> 页面中,这是调用的内容然后调用此部分:

_form

=link_to_add_fields "Add New Dish", f, :dishes 中的link_to_add_fields看起来像这样:

helpers/application_helper.rb

1 个答案:

答案 0 :(得分:2)

而不是这一行

=select("dish", "menu_id", Menu.all.collect {|r| [ r.name, r.id ] }, {:include_blank => 'Choose a Menu'})  

将它与表单对象一起使用

=f.select("menu_id", Menu.all.collect {|r| [ r.name, r.id ] }, {:include_blank => 'Choose a Menu'})

我希望这会解决你的id问题以及菜肴属性的一部分