【问题标题】:Sum DB fields in Rails在 Rails 中求和 DB 字段
【发布时间】:2014-10-24 01:59:27
【问题描述】:

在我的 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'  

有人知道我错过了什么吗?

【问题讨论】:

    标签: ruby-on-rails model sum


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,这可以解决问题 - 是的,这是我的第一次构建,也是我学习 Rails 框架的一部分。如果您有任何资源可以帮助我了解这个问题,请告诉我。
    • 你能不能不争论把这个放到助手中的好处?
    • 对不起@RichPeck!我只想与 OP 分享我的经验以及我发现对 SO 有用的东西。我英语不好,但我愿意提高。是You should ...的那句话让你以为我在争论美德。我使用我刚刚从stackoverflow.com/questions/25546314/… 的讨论中学到的句子。但是我忘了在里面加上a bit,是不是引起了误会?如果是这样,我愿意修复它,或者您能提出一些更合适的方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多