0

我在构建新的 Rails 应用程序时遇到问题。

尝试@invoice.total在视图中运行时,出现此错误:

undefined method `*' for nil:NilClass

但是,@invoice.total在控制台中运行。我曾尝试使用 HAML 和/或 ERB 来解决同样的问题。

运行的代码@invoice.total在模型中,如下所示:

def items_total
  items_total = 0
  self.invoice_items.each do |i|
    items_total += i.price * i.quantity
  end
  items_total
end


# instead of copying this code all of the time
def vat_calc
  (1 + self.vat_rate / 100)
end

def discount_calc
  (1 - self.discount / 100)
end

# total times to add vat on top and remove discount
def total
  items_total * discount_calc * vat_calc
end

发票的增值税率和折扣设置为 0,每个项目(有 3 个)的 inc_vat 为 1。

有什么问题?

4

1 回答 1

0

原来我@invoice_item = @invoice.invoice_items.new在发票控制器的显示区域而不是@invoice_item = InvoiceItem.new在发票项目创建表单中。

一直在工作:/

谢谢

于 2012-08-07T22:11:32.707 回答