0

複数のアソシエーションで .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"})

これは意味がありますか?私は愚かなことをしていますか?

4

1 に答える 1