我有一个属于产品模型的 SoldHistory 模型,也有一个分支模型。在产品展示页面中,有一个用于创建销售历史的表单:整数属性。我正在尝试向表单添加一个选择标签,该标签将从 Branch 模型中选取对象。
<%= form_for [@product, @product.sold_histories.build, @branch = Branch.find(:all)] do |f| %>
<%= f.label "Dispatch: "%>
<%= f.number_field :sold %>
<%= f.select :branch, options_from_collection_for_select(@branch, "id", "name") %>
<%= f.submit "Enter" %>
<% end %>
我试过这个,但它一直说找不到 id=all 的分支
请问我做错了什么?
In <%= form_for [@product, @product.sold_histories.build, @branch = Branch.find(:all)] do |f| %>
将@branch = Branch.find(:all)
更改为@branch = Branch.all
编辑:为什么不将@branch分配放在表单块中?喜欢这个:
<%= form_for [@product, @product.sold_histories.build] do |f| %>
<% @branch = Branch.find(:all) %>
...
<% end %>
对你有所帮助
<%= f.select :branch, options_for_select(@branch.collect {|a| [a.name, a.id]}) %>
您可以在控制器操作中获得@branches,而无需编写表单标记