[英]Rails undefined method `+' for nil:NilClass
I have a method 'calc_price' that was working previously, and still works in console, but is now giving me the following error in a browser: 我有一个以前一直在使用的方法“ 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'
The fact that it still works in console is confusing to me, especially since I didn't change the method at all for it to break. 它仍然可以在控制台中工作的事实令我感到困惑,尤其是因为我根本没有更改方法来使其中断。 The method:
方法:
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
quote controller 报价控制器
def index
@quote = Quote.find(:all)
@myquotes = Quote.find(:all, :conditions => { :user_email => current_user.email })
end
I tried adding screenprice = 0, newprice = 0 and inkprice = 0 to see if that would make a difference but it did not. 我尝试添加screenprice = 0,newprice = 0和inkprice = 0,以查看是否会有所不同,但事实并非如此。
If it still works in console does that mean maybe its not the method itself that is broken? 如果它仍然可以在控制台中运行,这是否意味着不是方法本身被破坏了?
Any help would be greatly appreciated! 任何帮助将不胜感激! Thanks
谢谢
pr
is most likely nil. pr
很可能是零。 An item with an amount greater than 500 would result in pr
being nil in the code above. 数量大于500的项目将导致
pr
在上面的代码中为nil。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.