在我看来,我有一个带有选择
的表单 <%= 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该方法。这样做的最佳方式是什么?
答案 0 :(得分:0)
我认为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') %>