表单帮助程序 - 选择标记逻辑轨的问题



我有一个属于产品模型的 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,而无需编写表单标记

最新更新