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

Kar*_*lak 2 sql postgresql ruby-on-rails rails-activerecord

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

SELECT *
FROM "services" AS s
WHERE /* part using 's' alias */
Run Code Online (Sandbox Code Playgroud)

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

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

我该如何处理?

Tom*_*and 6

要使用表别名,请将该select方法与以下方法结合使用from

Service.select("s.*").from("services s")
Run Code Online (Sandbox Code Playgroud)

它会生成以下 SQL:

SELECT s.* FROM services s
Run Code Online (Sandbox Code Playgroud)

它会返回一个ActiveRecord::Relation您可以根据需要进行优化的值。