Как сделать предложение where необязательным для ORM? - PullRequest
1 голос
/ 26 марта 2020

У меня есть запрос:

User.includes(:translations, :user_roles, :user_rating,
                              :user_verification, :portfolios, :reviews, :user_account,
                              :task_responses, :user_favorite_categories, :photo)
                    .where(
                      user_favorite_categories: { category: cat&.main_category_ids },
                      user_reviews: { review_type: 'author_as_contractor' }
                    )
                    .where('users.hidden_until is null OR users.hidden_until < ?', Time.current)

Этот запрос включает в себя отзывы пользователей

Как сделать необязательное условие user_reviews: { review_type: 'author_as_contractor' }?

Выбрать пользователя, даже если он нет отзывов.

1 Ответ

1 голос
/ 26 марта 2020

Вы можете использовать eager_load и where вот так:

User.eager_load(:reviews)
    .where(user_reviews: { review_type: ['author_as_contractor', nil] })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...