【发布时间】:2014-09-13 21:55:11
【问题描述】:
我有两个模型,User 和 Team,这是一个带有名为 Member 的连接表的 many-to-many。它是这样设置的:
#Team:
has_many :members, dependent: :destroy
has_many :users, through: :members
#User
has_many :members
has_many :teams, through: :members
#Member
belongs_to :user
belongs_to :team
我希望用户能够访问彼此的个人资料页面 (controller: :users, action: :show)。在个人资料页面上,我只想列出两个用户都属于的团队(他们也可以是不同团队的成员)。
我尝试的是这样的:
#UsersController
def show
@user = User.find(params[:id])
@teams = @user.teams.joins(:members).where(:members => { :user_id => current_user.id })
end
这个不行(有的时候不显示队伍,有的时候显示错误的队伍,完全失败!)
那么,做我想做的事的正确方法是什么?只列出两个用户所属的团队?
【问题讨论】:
标签: sql ruby-on-rails ruby postgresql activerecord