我有卡和用户,还有将它们与card_id,user_id和号码一起加入的集合。
我想按左连接的用户过滤卡片,以便获得卡片的完整列表,其中包含每个卡片的所说用户集合(如果用户不拥有卡片,则不收集)。
在我的卡资源中,我添加了:
class CardResource < JSONAPI::Resource
[...]
class << self
def apply_filter(records, filter, value, options)
case filter
when :user
records.joins("LEFT JOIN collections ON collections.card_id = cards.id AND collections.user_id = #{value[0]}")
else
return super(records, filter, value)
end
end
end
end
查询工作正常,但不包含集合数据。
如果我使用?include = collections进行查询,则该查询将包含所有集合数据,但会删除用户过滤。我能同时得到吗?