2014-08-30 3 views
0

В моем приложении rails у меня есть модель Jobs. В модели Jobs есть три отдельных поля в записи задания, которые я хочу суммировать: cabinetry_cost, counter_top_cost и install_cost.Сумма полей DB в Rails

Чтобы сделать это, я следующий метод в моей модели рабочих мест:

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. Если у вас есть какие-либо ресурсы, которые могут помочь в моем обучении по этой проблеме, пожалуйста, дайте мне знать. –

+1

Эта ссылка может стать началом для вас. http://stackoverflow.com/a/1947268/3630826 –

+1

Не могли бы вы спорить о достоинствах сдачи этого в помощника? –

Смежные вопросы