[英]Rails undefined method `+' for nil:NilClass
我有一个以前一直在使用的方法“ calc_price”,现在仍然可以在控制台中使用,但是现在在浏览器中出现以下错误:
NoMethodError in Quotes#index
undefined method `+' for nil:NilClass
18: Price: $<%= f.calc_price %><br />
app/models/quote.rb:33:in `block in calc_price'
app/models/quote.rb:13:in `calc_price'
app/views/quotes/index.html.erb:18:in `block in _app_views_quotes_index_html_erb__1788058106025144185_70227449765940'
app/views/quotes/index.html.erb:15:in `each'
app/views/quotes/index.html.erb:15:in `_app_views_quotes_index_html_erb__1788058106025144185_70227449765940'
它仍然可以在控制台中工作的事实令我感到困惑,尤其是因为我根本没有更改方法来使其中断。 方法:
def calc_price
self.items.each do |item|
pr = if item.amount < 10
item.product.pricerange0
elsif item.amount < 25
item.product.pricerange1
elsif item.amount < 50
item.product.pricerange2
elsif item.amount < 100
item.product.pricerange3
elsif item.amount < 250
item.product.pricerange4
elsif item.amount < 500
item.product.pricerange5
end
screens = 0
sd = item.shirtdesigns.count
pd = item.pantdesigns.count
screens = (sd+pd)
screenprice = (screens*25)
inkprice = ((item.inkcolors-1)*0.5)
newprice = ((pr+inkprice)*item.amount+screenprice)
item.price = newprice
item.save
end
newprice = self.items.sum('price')
self.price = newprice
self.save
return self.price
end
报价控制器
def index
@quote = Quote.find(:all)
@myquotes = Quote.find(:all, :conditions => { :user_email => current_user.email })
end
我尝试添加screenprice = 0,newprice = 0和inkprice = 0,以查看是否会有所不同,但事实并非如此。
如果它仍然可以在控制台中运行,这是否意味着不是方法本身被破坏了?
任何帮助将不胜感激! 谢谢
pr
很可能是零。 数量大于500的项目将导致pr
在上面的代码中为nil。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.