Rails ActiveRecord总和条件不起作用

Jay*_*een 0 sql postgresql activerecord ruby-on-rails

在我看来,我称之为函数

def sum_customer_yearly_revenue(customer_id, year)
  sum_customer_yearly_revenue = Sale.sum(:net_amount, :conditions => ['customer_id = ? AND financial_year = ?', customer_id, year])
end
Run Code Online (Sandbox Code Playgroud)

出于某种原因,SQL发送到Postgresql(在日志文件中查看)如下:

SELECT SUM("sales"."net_amount") AS sum_id FROM "sales"
Run Code Online (Sandbox Code Playgroud)

所有条件都被忽略了.

有没有人经历过这个,能给我一些见解吗?

Kir*_*rat 7

sum_customer_yearly_revenue方法更新为

对于 Rails 3.x

def sum_customer_yearly_revenue(customer_id, year)
  Sale.where(:all, :conditions => ['customer_id = ? AND financial_year = ?', customer_id, year]).sum(:net_amount)
end
Run Code Online (Sandbox Code Playgroud)

对于 Rails 4.x

def sum_customer_yearly_revenue(customer_id, year)
  Sale.where(customer_id: customer_id, financial_year: year).sum(:net_amount)
end
Run Code Online (Sandbox Code Playgroud)