0

私はうまく機能するこのクエリをまとめました。

     search = Artist.where(:status => "active").where("upcoming_events_count > 0").order("echonest_external_popularity DESC").limit(limit))

問題は、別のテーブル ArtistPhoto にあるチェックをもう 1 つ追加したいということです。一致では、(artist_id からの) アーティストにも有効な写真が含まれていることを確認する必要があります。

私は独立して検索を行うクエリを持っています:

     ArtistPhoto.where("artist_id = ? and artist_photos.primary = ?", self.id, true).first

誰かが結合を1つのクエリにまとめるのを手伝ってくれるなら、それは素晴らしいことです.

ありがとう

4

1 に答える 1

2

を使用joinsして、他の関連付けを追加します。

search = Artist.joins(:artist_photos).
                where("artist_photos.primary = ?", true).
                where(...) # other filters here

この回答は、モデルに があることを前提としていhas_many :artist_photosますArtist

于 2012-12-17T20:10:06.580 に答える