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