嗨,我已经搜索过,但还没有找到这样做的方法
我有以下型号:
class Hierarchy < ActiveRecord::Base
belongs_to :user
belongs_to :family
end
.
class Family < ActiveRecord::Base
#attributes rank:integer order:integer
has_many :hierarchies
has_many :users, :through => :hierarchies
end
.
class User < ActiveRecord::Base
has_many :hierarchies
has_many :families, :through => :hierarchies
end
有了
current_user
我需要得到他家人的所有其他成员,按等级分组,然后按列顺序排序。我会提出我尝试过的内容,但实际上并没有那么多,而且这个查询超出了我的范围。
我正在使用 postgres。
最佳答案
我会采用以下方法..
我们必须更新用户模型:)
class User < ActiveRecord::Base
has_many :hierarchies
has_many :families, :through => :hierarchies
has_many :family_members,
-> { group('families.rank').order('families.order ASC') },
through: :families, source: :users
end
然后很容易获得当前用户的所有成员:
current_user.family_members