【问题标题】:ActiveRecord Ruby on Rails Select vs FInd_by_sqlActiveRecord Ruby on Rails Select 与 FInd_by_sql
【发布时间】:2014-06-29 04:17:42
【问题描述】:

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

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

我想把它变成 ActiveRecord 格式,但我认为我不能在“选择”函数中使用聚合函数,而且我不确定如何正确使用“计算”​​函数。

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    但不是 find_by_sql。

    【讨论】:

    • 行得通,谢谢。请注意,要让它工作,我必须使用 Ruby 字符串插值:#{get_val}。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多