我有一个 Rails 表单的下拉列表:
<%= f.select :lists, [["test1", 1], ["test2", 0]] %>
这工作正常,但我怎样才能使它动态。(与模型数据交互)
我有一个控制器,其动作包含@list = List.all
我如何填充id
和name
在我的combobox
. 我一直在四处寻找,但我不清楚。谁能帮忙>
我有一个 Rails 表单的下拉列表:
<%= f.select :lists, [["test1", 1], ["test2", 0]] %>
这工作正常,但我怎样才能使它动态。(与模型数据交互)
我有一个控制器,其动作包含@list = List.all
我如何填充id
和name
在我的combobox
. 我一直在四处寻找,但我不清楚。谁能帮忙>
您可以使用options_from_collection_for_select。
<% options = options_from_collection_for_select(@list, 'id', 'name') %>
<%= f.select :all_val, options %>
在@learner 上面的线程中没有足够的声誉来回答您的问题,但很有可能@overflow 没有在他的控制器中定义@list。
为了解决我的问题,我将我的@list等效项(在本例中为 @restaurants)放在我的“def new”方法中,因为我使用它来帮助创建与相关餐厅相关的新项目。
# GET /specials/new
def new
@special = Special.new
@restaurants = Restaurant.all // Look Here
end
此外,原始响应中的:all_val应该是您要传递给数据库的参数。就我而言,它是:restaurant_id
这对我有用
# view
<%= form.select(:list_id) do %>
<% @list.each do |l| -%>
<%= content_tag(:option, l.name, value: l.id) %>
<% end %>
<% end %>
和
# controller
@list ||= List.all
`