由rails

时间:2015-12-03 02:30:26

标签: ruby-on-rails ruby

我有一个名为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 %>

1 个答案:

答案 0 :(得分:3)

您可以尝试collection_select

在视野中 <%= f.collection_select :your_field, @ders, :id, :name %>