我在构建新的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
发票的vat_rate和折扣设置为0,每个项目(有3个)的inc_vat为1。
有什么问题?
答案 0 :(得分:0)
原来我在发票控制器的展示区域中有@invoice_item = @invoice.invoice_items.new
而不是发票项目创建表单的@invoice_item = InvoiceItem.new
。
已经工作了:/
<强>感谢强>!