我有一个以前可以使用的方法“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 以查看是否会有所作为,但事实并非如此。
如果它仍然在控制台中工作,这是否意味着它可能不是被破坏的方法本身?
任何帮助将不胜感激!谢谢