2017-05-08 108 views
0

belongs_to的条件相匹配的关系

User belongsTo Group 

而且还有一个用户,其拥有该组,所以:

class Group ... 
    belongs_to :owner, -> { 
    joins(:groups).where('groups.id = users.group_id') 
    }, class_name: 'User' 

我想限制这种关系,只有用户可谁已经在该组中。

但是在lambda自我为User,所以我不能,因为它返回的所有用户,不仅属于该组的那些访问我原来的对象(Group

该代码是不工作。

有什么想法?

+0

什么定义了组的所有者?您必须首先确定这一点,但我在这里没有看到任何关于此的信息。也许在表中添加一个布尔值来标识所有者? –

+0

组表有一个'user_id'字段,即所有者,users表有一个'group_id',即它所属的用户。 –

回答

0

你试过类似的东西吗?

class User < ActiveRecord::Base 
    belongs_to :group 
end 


class Group < ActiveRecord::Base 
    belongs_to :owner, -> { where("users.group_id = id") }, foreign_key: :user_id, class_name: 'User' 
end