如何使用表的别名在ActiveRecord中进行SQL查询?

时间:2017-08-24 16:04:17

标签: sql ruby-on-rails postgresql rails-activerecord

我想在Rails中对Services ActiveRecord进行这样的查询:

SELECT *
FROM "services" AS s
WHERE /* part using 's' alias */

通常我只会写Service.where(/* where part */),但我需要设置别名。

我尝试运行ActiveRecord::Base.connection.execute(query),但结果却未被识别为Service

我该如何处理?

2 个答案:

答案 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)在我的案例中效果很好。