我想在Rails中对Services
ActiveRecord进行这样的查询:
SELECT *
FROM "services" AS s
WHERE /* part using 's' alias */
通常我只会写Service.where(/* where part */)
,但我需要设置别名。
我尝试运行ActiveRecord::Base.connection.execute(query)
,但结果却未被识别为Service
。
我该如何处理?
答案 0 :(得分:3)
要使用表别名,请将select
方法与from
:
Service.select("s.*").from("services s")
哪个生成此SQL:
SELECT s.* FROM services s
并返回ActiveRecord::Relation
,您可以根据需要进行优化。
答案 1 :(得分:0)
幸运的是,我在撰写此问题时找到了解决方案。 Service.find_by_sql(query)
在我的案例中效果很好。