我在编写范围时遇到挑战,该范围显示属于名为live_socials
的{{1}}的用户创建的category_managementgroup
。
client_group
以下范围显示category_managementgroup中名为client_group的所有社交用户:
Social.rb
belongs_to :user
scope :live_socials, -> {where(['date >= ?', Date.current])}
CategoryManagementgroup.rb
has_many :users
User.rb
has_many :socials
belongs_to :category_managementgroup
我不确定如何扩展范围以显示
users.joins(:socials, :category_managementgroup).client_group.flat_map(&:socials)
(未过期的社交)。我试过以下但没有成功:
live_socials
我收到以下错误:
users.joins(:socials, :category_managementgroup).client_group.flat_map(&:socials).live_socials
答案 0 :(得分:1)
尝试在live_socials
之前应用flat_map
范围,并将以下范围添加到用户模型
scope :live_socials, -> { joins(:socials).where(['socials.date >= ?', Date.current])}