使用用户名填充选择框

时间:2013-08-06 20:56:10

标签: ruby-on-rails ruby ruby-on-rails-3

在我看来,我有一个带有选择

的表单
    <%= label_tag("employee_names", "Employees") %>
    <%= select_tag("employee_names", params[:employee_names]) %>

然后我有很多用户,这些用户的名称为user.name,ID为user.id

我在控制器中有一个方法,当给定用户ID时,将我的列表缩小到特定的用户对象。

    if params[:employee_names].present?
      @time_sheets = @time_sheets.joins(:user).where("users.id IN (?)", params[:employee_names])
    end

所以我遇到的问题是,我不知道如何使用用户名列表填充我的选择框。然后在提交时我需要它给用户id该方法。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

我认为options_from_collection_for_select应该为你做好准备。

更多信息:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select

select_tag :employees, options_from_collection_for_select(@employees, 'id', 'name')

答案 1 :(得分:0)

您正在寻找collection_select

<%= collection_select(:employee, :employee_id, @time_sheets, :id, 'Employees') %>