belongs_to匹配关系的条件

时间:2017-05-08 05:23:42

标签: ruby-on-rails ruby

我有

User belongsTo Group

并且还有一个用户拥有该组,因此:

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

我想将这种关系仅限于已经在该群组中的用户。

lambda自我User,我无法访问原始对象(Group

该代码无效,因为它返回所有用户,而不仅仅是属于该组的用户。

有什么想法吗?

1 个答案:

答案 0 :(得分: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