我有两张桌子 -
用户 - 过期
兴趣 - user_id,内容
我想让所有到期时间超过现在并且其兴趣包含指定期限的用户。
我试过
Interest.where('content LIKE ?','%#{search_term}%')
然后从中获取用户,但我正在寻找一种查询方式来执行此操作。
答案 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的条件。