我正在使用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的答案也非常受欢迎!