Ресурсы JSONAPI: пользовательское соединение слева - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть карточки и пользователи, а также коллекции, в которые они могут присоединиться с помощью card_id, user_id и number.

Я хочу отфильтровать карточки по пользователю с левым объединением, чтобы я получил полный список карточек суказанная коллекция пользователей для каждой карты (или нет коллекции, если пользователь не владеет картой).

В ресурс моей карты я добавил:

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 = Collection, это включает в себя все данные коллекций, но удаляет пользовательскую фильтрацию.Могу ли я получить оба?

...