JSONAPI资源:自定义左联接

时间:2018-09-30 19:24:15

标签: ruby-on-rails jsonapi-resources

我有卡和用户,还有将它们与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进行查询,则该查询将包含所有集合数据,但会删除用户过滤。我能同时得到吗?

0 个答案:

没有答案