在模型中将数字转换为货币?

时间:2012-04-02 17:41:32

标签: ruby currency

我正在动态生成发票PDF,并使用我的模型来计算总计。例如:

 def cost
    jobs.inject(0) do |sum, job|      
      sum + job.cost
    end
  end

生成发票时,我想要以下货币:

 pdf.text "Invoice Total: $#{number_to_currency(cost)}"

但是当我尝试使用number_to_currency助手以便将计算值显示为货币时,我会收到错误。关于如何/在何处完成此任何建议?感谢。

1 个答案:

答案 0 :(得分:2)

如果从模型中调用代码,则需要包含帮助程序,因为它们不包含在ActiveRecord :: Base中。

因此,您可能在模型代码中有类似的内容:

has_many :jobs

include ActionView::Helpers

def cost
  jobs.inject(0) do |sum, job|      
    sum + job.cost
  end
end

def generate_pdf
  ...

 pdf.text "Invoice Total: $#{number_to_currency(cost)}"
end