rails 4填充数据库中的下拉值

时间:2013-10-06 16:52:55

标签: ruby-on-rails ruby-on-rails-3

我有一个轨道形式的下拉列表:

<%= f.select :lists, [["test1", 1], ["test2", 0]] %>

这很好但是我怎么能让它变得动态。 (与模型数据交互)

我有一个包含@list = List.all

的操作的控制器

如何在id中填充namecombobox。我一直在寻找,但我不清楚它。任何人都可以帮助&gt;

4 个答案:

答案 0 :(得分:13)

您可以使用options_from_collection_for_select

<% options = options_from_collection_for_select(@list, 'id', 'name') %>
<%= f.select :all_val,  options %>

答案 1 :(得分:3)

在@learner上面的帖子中没有足够的声誉回复你的问题但是@overflow很可能没有在他的控制器中定义@list。

为了解决我的问题,我在“def new”方法中添加了相当于 @list (在本例中为 @restaurants ),因为我使用它来帮助创建与相关餐厅的新项目。

# GET /specials/new
  def new
    @special = Special.new
    @restaurants = Restaurant.all // Look Here
  end

此外,原始响应中的:all_val 应该是您要传递到数据库的参数。就我而言,它是:restaurant_id

答案 2 :(得分:0)

这对我有用

# view
<%= form.select(:list_id) do %>
    <% @list.each do |l| -%>
      <%= content_tag(:option, l.name, value: l.id) %>
    <% end %>
<% end %>

# controller
@list ||= List.all

`

答案 3 :(得分:-1)

要获得最佳答案,人们在实施代码时会遇到错误,因此必须添加解决方案:“ @ rolenames = Rolename.all”以创建和更新操作,而不仅仅是新建和编辑操作。

P.S:无法将其添加到最佳答案的答复中,因为我必须有50次重复,而目前我的重复次数少于此次数,希望对您有帮助