“as”的Activerecord方法 - 派生别名

时间:2011-03-11 00:41:57

标签: sql ruby-on-rails ruby-on-rails-3 orm activerecord

我正在尝试使用ActiveRecord方法构建SQL查询。该查询有一些需要派生表的连接,如下所示:

(SELECT voteable_id, COUNT(vote) FROM votes WHERE vote = 0 GROUP BY voteable_id) AS example

我的问题是我似乎无法找到一种允许我为派生表创建别名的方法(此处:AS示例)。我的问题是,甚至可以使用activerecord方法构建这样的查询吗?

编辑:只是为了让它更清晰。我有以下方法来构建select语句。

t = Vote # Vote being the table name
t = t.where("vote = 0")
t = t.group("voteable_id")
t.select("voteable_id, COUNT(vote)")

但是如何添加“AS”别名呢?

1 个答案:

答案 0 :(得分:0)

您始终可以使用#to_sql:

的结果
t = Vote # Vote being the table name
t = t.where("vote = 0")
t = t.group("voteable_id")
sql = t.select("voteable_id, COUNT(vote)").to_sql
t.connection.find_by_sql("(#{sql}) AS example")

真正的问题是为什么你需要使用别名。回答这个问题,我们会更好地帮助您。