Ruby on rails 将范围写入复杂的多个关联-Rails 4

Ruby on rails 将范围写入复杂的多个关联-Rails 4,ruby-on-rails,Ruby On Rails,我在编写一个范围时遇到了挑战,该范围显示由属于一个名为客户组的类别管理组的用户创建的实时社交 以下范围显示了名为“客户”组的类别管理组中用户的所有社交活动: users.joins(:socials, :category_managementgroup).client_group.flat_map(&:socials) 我不确定如何扩展范围以显示live_socials 尚未过期的社交网站。我尝试了以下方法,但没有成功: 我得到以下错误: 尝试在平面映射之前应用live_socials

我在编写一个范围时遇到了挑战,该范围显示由属于一个名为客户组的类别管理组的用户创建的实时社交

以下范围显示了名为“客户”组的类别管理组中用户的所有社交活动:

users.joins(:socials, :category_managementgroup).client_group.flat_map(&:socials)
我不确定如何扩展范围以显示live_socials 尚未过期的社交网站。我尝试了以下方法,但没有成功:

我得到以下错误:

尝试在平面映射之前应用live_socials作用域,并将下面的作用域添加到用户模型中

scope :live_socials, -> { joins(:socials).where(['socials.date >= ?', Date.current])}

尝试在平面图之前应用live_socials,并将下面的作用域添加到用户作用域:live_socials,->{joins:socials.where['socials.date>=?',date.current]}非常感谢!你能把你的评论作为这个问题的答案吗?所以我给它打个分数,因为你的建议很好地解决了这个问题
users.joins(:socials, :category_managementgroup).client_group.flat_map(&:socials).live_socials
2.3.0 :264 > ap users.joins(:socials, :category_managementgroup).client_group.flat_map(&:socials).live_socials
  User Load (0.5ms)  SELECT "users".* FROM "users" INNER JOIN "socials" ON "socials"."user_id" = "users"."id" INNER JOIN "category_managementgroups" ON "category_managementgroups"."id" = "users"."category_managementgroup_id" WHERE "category_managementgroups"."name" = 'Client Group'
  Social Load (0.1ms)  SELECT "socials".* FROM "socials" WHERE "socials"."user_id" = ?  [["user_id", 10]]
NoMethodError: undefined method `live_socials' for #<Array:0x007ff2f9834570>
scope :live_socials, -> { joins(:socials).where(['socials.date >= ?', Date.current])}