有一个填充名称的选择框

时间:2013-08-07 03:19:20

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

在我的视图中,我有一个带有text_field_tag的表单,它接受一个int,并只返回timesheet.user_id与int匹配的时间表

<%= text_field_tag("user_id", params[:user_id]) %>

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

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

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

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

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要一个集合下拉列表来详细说明所有用户及其ID。你可以这样做:

<%= collection_select :user, :user_id, @users, :name, :id, :prompt => true %>

其中:text_method是调用@users成员的方法将返回您想要在下拉列表中显示的文本。

ApiDocs将其分解,这就是它的设置方式:

object = User
method = user_id 
collection @users 
value_method = id 
text_method = name 
option = prompt => true