2009-09-25 50 views
2

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

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

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

现在选择框显示选项1,2,3,4等等。它需要来自用户表的name1,name2。

有没有人有这方面的经验?

+0

你觉得有一个选择的元素将成为用户有大量成员时友好吗? – khelll 2009-09-25 08:11:55

+0

集合选择基于“选择项目”选择框,但感谢您的反馈 – arcooverbeek 2009-09-25 08:27:54

回答

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"}) %>