【发布时间】:2015-12-07 02:14:12
【问题描述】:
我有一个名为 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 %>
【问题讨论】:
标签: ruby-on-rails ruby