我在构建新的 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。
有什么问题?