在collection_select中用name替换id

时间:2009-09-25 07:44:11

标签: ruby-on-rails ruby database select options

在我的应用程序中,我的成员表上有一个collection_select,成员表只包含id。它有一个user_id,project_id,role_id等。

我想在collection_select中显示成员名称。但我只在成员表中有user_id,如何将用户表中的名称显示为选项?

<%= collection_select(nil, :member_id, members, :id, :user_id,
                 {:prompt   => "Select a member"}) %>

现在,选择框显示选项1,2,3,4,依此类推。它必须是来自用户表的name1,name2。

有人对此有经验吗?

1 个答案:

答案 0 :(得分:3)

首先,您需要为成员模型添加新方法:

class Member < ActiveRecord::Base
  belongs_to :user
  def member_name
    user.name
  end
end

然后将text_method参数更改为member_name

<%= collection_select(:member, :member_id, members, :id, :member_name,
                 {:prompt   => "Select a member"}) %>