У меня возникли проблемы, обворачивающие мою голову, используя .joins в нескольких ассоциациях. Это моя установка модели:Рельсы нескольких соединений возвращают пустой набор. Зачем?
class Article
has_many :comments
has_many :tags
end
class Comment
belongs_to :article
end
class Tag
belongs_to :article
end
Я пытаюсь найти все статьи с комментарием, который имеет конкретный комментарий орган или тег с определенным текстом тега. Это мой вопрос:
Article.joins(:tags, :comments).where("(\"tags\".\"tag\" = 'awesome') OR (\"comments\".\"body\" = 'hello')
Это всегда возвращает пустой результат. Странное дело, что это будет работать:
Article.joins(:tags).where(:tags => {:tag => "awesome:})
Но когда я добавляю другой присоединяется символ, ничего не возвращается:
Article.joins([:tags, :comments]).where(:tags => {:tag => "awesome"})
Есть ли в этом смысл? Я что-то делаю глупо?
Это тот случай, когда некоторые из помеченных статей могут не иметь комментариев (или, наоборот, некоторые из комментариев статей не могут иметь никаких тегов)? –