2015-12-03 47 views
0

我所拥有的用户有一个布尔字段der定义了一个名为DER的名单如下下拉菜单中轨

def show 
@user = User.find(params[:id]) 
@ders = User.where(der: true, troop: @user.troop) 
... 

与特定用户填充我想生成一个下拉菜单,每个选项都是每个der的名称,但我无法在Ruby on Rails中找出<%= f.select %>语句。我已经尝试了一堆的变化,这是最近我已经试过

<% der_array = User.where(der: true, troop: @user.troop).map { |der| [der.name, der.id] } %> 
<%= options_for_select(der_array) %> 

但这恰恰说明不是在下拉格式DER名的文本值。通过下拉菜单填充DER的名称并将其ID发送到控制器的最佳方式是什么?

编辑:工作代码

<%= form_for(@user) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <%= f.collection_select :id, @ders, :id, :name %> 
<% end %> 

回答

3

,你可以尝试在视图 <%= f.collection_select :your_field, @ders, :id, :name %>

+0

会'什么collection_select

:your_field'在这种情况下?我不确定这应该指向什么/参考 – mjswartz

+0

假设选择是在'form_for @ model'块中,它应该是'@ model'的字段名称。 – richfisher

+0

最后得到解决这个问题并且它可以工作大!谢谢。检查我的编辑的工作代码 – mjswartz