我有两张桌子 -
用户 - 过期
兴趣 - user_id,content
我想获取所有到期时间大于现在且其兴趣包含指定术语的用户。
我试过了
Interest.where('content LIKE ?','%#{search_term}%')
然后从中获取用户,但我正在寻找一种单一的查询方式来做到这一点。
我有两张桌子 -
用户 - 过期
兴趣 - user_id,content
我想获取所有到期时间大于现在且其兴趣包含指定术语的用户。
我试过了
Interest.where('content LIKE ?','%#{search_term}%')
然后从中获取用户,但我正在寻找一种单一的查询方式来做到这一点。
User.joins(:interests).where('interests.content LIKE ? and users.expires > ?', "%#{search_term}", Time.now)
尝试这个。我假设用户 has_many :interests。
User.joins(:interests).where('interests.content LIKE ?', "%#{search_term}%")
.where('expires > ?', Time.now)
您可能还想查看 squeel gem,因为它有一些更好的方法来表达这样的条件,看起来更像红宝石。