Rails填充collection_select

时间:2011-12-28 04:56:03

标签: ruby ruby-on-rails-3

我正在尝试使用关系表自动填充rails中的选择框。

Venture_Users有一个Users和Venture ID列表,所以我想查找特定Venture下的所有用户,然后通过user_id和user.name显示用户。

我尝试了以下

        <%= f.collection_select(:user_id, VentureUser.find_all_by_venture_id(@venture.id), :user_id, :name) %>

但是最后一个属性:name不起作用,因为它不直接在我的结果中,我需要在我的用户表上运行查询以获取用户名。'

基本上我需要但不知道该怎么做是修改我的VentureUsers.find_all语句以加入我的用户表中的属性。

谢谢, 麦克

1 个答案:

答案 0 :(得分:2)

只要您正确设置了关联,这应该非常简单。如果我已经正确理解了您的场景,那么您应该将其设置为:

class Venture < ActiveRecord::Base
  has_many :venture_users
  has_many :users, :through => :venture_users
end

class VentureUser < ActiveRecord::Base
  belongs_to :venture
  belongs_to :user
end

如果您的关联确实如此,那么您应该能够像这样创建选择:

<%= f.collection_select(:user_id, @venture.users, :id, :name) %>