2017-08-24 76 views
0

我想爲我的ActiveRecord Services這樣的查詢中的Rails:如何在ActiveRecord中使用表的別名進行SQL查詢?

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

一般情況下我寫的只是Service.where(/* where part */),但我需要把我的別名。

我試圖運行ActiveRecord::Base.connection.execute(query),但是結果不被識別爲Service

我該如何處理?

回答

0

幸運的是我在寫這個問題的時候找到了解決辦法。 Service.find_by_sql(query)適合我的情況。

1

要使用一個表的別名與from結合select方法:

Service.select("s.*").from("services s") 

產生這個SQL:

SELECT s.* FROM services s 

並返回一個ActiveRecord::Relation它可以根據需要細化。