複数のアソシエーションで .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"})
これは意味がありますか?私は愚かなことをしていますか?