2014-08-30 30 views
0

在我的Rails應用程序中,我有一個Jobs模型。在作業模式中,我要彙總作業記錄中的三個單獨字段 - cabinetry_cost,counter_top_cost和install_cost。Rails中的總和DB字段

要做到這一點,我在我的工作模式如下方法:

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' 

有誰知道我錯過了什麼?

回答

2

您不需要在模型中添加任何東西,只需添加它們即可。

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

params是可變的,從您的視圖來了,應該在你的控制器中使用,而不是在你的模型。你應該退後學習一些關於Rails框架的東西。

+0

謝謝,這有訣竅 - 是的,這是我的第一個構建,也是我學習Rails框架的一部分。如果您有任何資源可以幫助我瞭解此問題,請告訴我。 – 2014-08-30 03:41:44

+1

這個鏈接可以成爲你的開始。 http://stackoverflow.com/a/1947268/3630826 – 2014-08-30 06:04:40

+1

你不能爭論把這個變成幫手的好處嗎? – 2014-08-30 11:53:54