Построение где и / или запроса в рельсах 4 - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать запрос, который будет отображать сообщения, если они есть, ИЛИ, если сообщение принадлежит пользователю, который был одобрен автоматически.

Я попробовал несколько вариантов, но не повезло.Есть идеи?

@posts = Post.includes(users:).where('posts.featured = ? OR users.auto_approved = ?', true, true).order("posts.created_at DESC")

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы должны использовать left_join для этого случая, так как вы хотите сохранить посты, которые не принадлежат ни одному users

@posts = Post.joins('LEFT JOIN users ON users.id = posts.user_id').where('posts.featured = ? OR users.auto_approved = ?', true, true).order("posts.created_at DESC")
0 голосов
/ 04 октября 2018

Попробуйте это:

Post.joins(:user).where('posts.featured OR users.auto_approved').order("posts.created_at DESC")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...