【发布时间】:2015-07-31 20:39:41
【问题描述】:
我有一个返回我需要的 SQL 查询,但我无法将其转换为“Rails 方式”的活动记录查询。
我的 SQL 查询是:
SELECT * from trips
WHERE trips.title LIKE "%Thailand%"
AND EXISTS (SELECT * from places WHERE places.trip_id = trips.id AND places.name LIKE "%Bangkok%")
AND EXISTS (SELECT * from places WHERE places.trip_id = trips.id AND places.name LIKE "%Phuket%")
我正在使用 Rails 尝试这样的事情:
@trips=Trip.where("trips.title LIKE ?", "%Thailand%")
@trips=@trips.includes(:places).where(("places.name LIKE ?","%Bangkok%").exists?) => true, ("places.name LIKE ?","%Phuket%").exists?) => true)
但它似乎不起作用,我不知道该尝试什么。
【问题讨论】:
-
您使用的是哪个版本的 Rails?
-
我使用的是 Rails 4.2.1
-
我正在为您提供更长的答案,但由于您在 SQL 中使用了
LIKE,您可能希望查看 stackoverflow.com/questions/30042146/…,因为LIKE在不同的数据库中表现不同(尽管这这不是您遇到此查询问题的原因 - 只是给您一个快速警告)。
标签: mysql ruby-on-rails