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

我有一个下拉式表格:

 

这工作正常但我怎么能让它动态。 (与模型数据交互)

我有一个控制器,其中包含@list = List.all

如何在combobox填充idname 。 我一直在寻找,但我不清楚它。 任何人都可以帮助>

您可以使用options_from_collection_for_select 。

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

在@learner上面的post中没有足够的声誉回复你的问题但是@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 

`

在实现代码时人们面临错误的最佳答案,解决方案:必须添加“@ rolenames = Rolename.all”来创建和更新操作,而不仅仅是新操作和编辑操作。

PS:无法将此添加到最佳答案的回复中,因为我必须有50个代表,而且目前我的数量还不到,希望它有所帮助