Rails未定义方法`*'为nil:NilClass在视图中

时间:2012-08-07 21:57:36

标签: ruby-on-rails ruby-on-rails-3 nomethoderror

我在构建新的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。

有什么问题?

1 个答案:

答案 0 :(得分:0)

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

已经工作了:/

<强>感谢