Rails在多态关联上留下外连接

时间:2016-05-17 18:05:57

标签: ruby-on-rails activerecord arel squeel public-activity

我正在使用PublicActivity gem。我试图为一组用户急切加载相关活动。我已经成立了“活动家”。我的用户类中的文档关联,定义了这个:

 def activist
  has_many :activities_as_owner,
   :class_name => "::PublicActivity::Activity",
   :as => :owner
  has_many :activities_as_recipient,
   :class_name => "::PublicActivity::Activity",
   :as => :recipient
 end

我在控制器中的查询是:

@results = @action_plan.users.includes(:activities_as_owner).where(activities: {recipient_id: @action_plan.id, key: "action_plan_role.access_granted" }).references(:activities_as_owner)

这确实加载了活动,但如果用户没有相应的活动,则不包括用户,这不是我想要的。根据ActiveRecord指南,包括' .references(:activities_as_owner)'应该使它成为一个OUTER连接而不是INNER,因此它返回所有用户,无论他们是否有活动。我代替':activities_as_owner'尝试过:活动,活动家,所有等等,但我无能为力。

Squeel或AREL的答案也非常受欢迎!

0 个答案:

没有答案