我有一个名为DER的用户列表,其定义为布尔字段der
,如下所示
def show
@user = User.find(params[:id])
@ders = User.where(der: true, troop: @user.troop)
...
端
我想生成一个下拉菜单,其中每个选项都是每个选项的名称,但我在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 %>
答案 0 :(得分:3)
您可以尝试collection_select
在视野中
<%= f.collection_select :your_field, @ders, :id, :name %>