我正在尝试使用关系表自动填充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语句以加入我的用户表中的属性。
谢谢, 麦克
答案 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) %>