2013-07-29 64 views
0

我有兩個表 -Rails的加盟查詢與條件

用戶 - 到期

利息 - USER_ID,內容

我想誰有到期大於現在所有的用戶和他們的利益包含一個特定的術語。

我已經試過

Interest.where('content LIKE ?','%#{search_term}%') 

,然後從獲得的用戶,但我在尋找一個單一查詢方式做到這一點。

回答

3
User.joins(:interests).where('interests.content LIKE ? and users.expires > ?', "%#{search_term}", Time.now) 
+0

感謝那馬雷克。經過一些與控制檯的工作後,我纔得到了這個工作。 – A23

2

試試這個。我假設用戶has_many:興趣。

User.joins(:interests).where('interests.content LIKE ?', "%#{search_term}%") 
    .where('expires > ?', Time.now) 

你也可能想看看squeel寶石,因爲它有一些更好的方式來表達這樣看起來更紅寶石十歲上下的條件。

+0

我剛剛發佈了一個解決方案,但你擊敗了我!謝謝sockmonk!這個尖叫寶石看起來很棒。將檢查出來。 – A23