Rails中的Sum DB字段

时间:2014-08-30 03:28:41

标签: ruby-on-rails model sum

在我的rails应用程序中,我有一个Jobs模型。在Jobs模型中,Job记录中有三个单独的字段,我想要求和 - cabinetry_cost,counter_top_cost和install_cost。

为此,我在我的工作模型中有以下方法:

def revenue
  job_by_id = Job.find(params[:id])
  revenue = job_by_id.sum(:cabinet_cost + :counter_top_cost + :install_cost)
end

在我看来,我调用的方法如下(使用下面的job.revenue):

<% @customer.jobs.each do |job| %>
  <tr>
    <td><%= link_to job.id, customer_job_path(@customer, job) %></td>
    <td><%= job.job_tag %></td>
    <td></td>
    <td><%= job.install_date %></td>
    <td><%= job.revenue %></td>
  </tr>
<% end %>

目前,我收到以下错误:

undefined local variable or method `params'  

有谁知道我错过了什么?

1 个答案:

答案 0 :(得分:2)

您不需要对模型中的任何内容求和,只需添加它们即可。

Class Job <  ActiveRecord::Base
  def revenue
    cabinet_cost + counter_top_cost + install_cost
  end
end

params是来自您视图的变量,应该在您的控制器中使用,而不是在您的模型中使用。您应该先退一步,先了解一下Rails框架。