ActiveRecord Ruby on Rails Select vs FInd_by_sql

时间:2014-06-29 04:17:42

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

我想将ActiveRecord接口用于项目。我在Ruby中有一个函数,称之为“get_val”。目前,我有

Object.find_by_sql("SELECT SUM(miles * gas * tires * get_val) AS calculation FROM table")

我想把它变成ActiveRecord格式,但我不认为我可以在'select'函数中使用聚合函数,而且我不确定如何正确使用'calculate'函数。

另外,我想添加多个where子句,所以我的后续问题是:我可以将Rails中的ActiveRecord函数串起来并让它作为单个SQL查询执行吗?特别是,如果我愿意,可以将'find_by_sql'和'where'串在一起吗?

注意:我正在开发一个旧的应用程序,因此我正在使用Rails 3,以防万一ActiveRecord语法发生了巨大的变化。

1 个答案:

答案 0 :(得分:2)

您可以选择(http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-select):

Object.select("SUM(miles * gas * tires * get_val) AS calculation")

但不是find_by_sql。