Rails加入了有条件的查询

时间:2013-07-29 13:04:57

标签: ruby-on-rails activerecord

我有两张桌子 -

用户 - 过期

兴趣 - user_id,内容

我想让所有到期时间超过现在并且其兴趣包含指定期限的用户。

我试过

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

然后从中获取用户,但我正在寻找一种查询方式来执行此操作。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

试试这个。我假设用户has_many:interest。

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

你可能也想看看squeel gem,因为它有一些更好的方式来表达这样看起来更像ruby-ish的条件。