【问题标题】:Drop down menu populated with specific users in rails在 Rails 中填充特定用户的下拉菜单
【发布时间】: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


    【解决方案1】:

    你可以试试collection_select

    在视图中 &lt;%= f.collection_select :your_field, @ders, :id, :name %&gt;

    【讨论】:

    • 在这种情况下:your_field 会是什么?我不确定那应该指向/参考什么
    • 假设选择在form_for @model块中,它应该是@model的字段名
    • 终于有时间尝试一下,效果很好!谢谢你。检查我的编辑工作代码
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2014-01-04
    相关资源
    最近更新 更多