通过这样的书:
使用Rails进行敏捷Web开发
我正在为我的应用程序创建购物车。有这样的代码:
class Cart < ActiveRecord::Base
attr_accessible :id
has_many :line_items, dependent: :destroy
def add_article(article_id)
current_item = line_items.find_by_ART_ID(article_id)
if current_item
current_item.quantity += 1
else
current_item = line_items.build(ART_ID: article_id)
end
current_item
end
def total_price
line_items.to_a.sum { |item| item.total_price(item.ART_ID) }
end
def total_count
line_items.to_a.sum { |item| item.quantity }
end
end
在我之前关于rails 3.0.9的项目中,一切都还可以,但现在就是说
无法强制进入Fixnum 在db中,数量为空
如果我改变我的代码
current_item = line_items.find_by_ART_ID(article_id)
if current_item
current_item.quantity = 1
else
current_item = line_items.build(ART_ID: article_id)
current_item.quntity = 1
end
current_item
一切都很好,但有什么不对?为什么rails 3.2.6和ruby 1.9.3不理解我的+ =赋值?
答案 0 :(得分:1)
它不是+ =的问题,问题是你试着用你的代码做这个。
nil + 1
数量首次为零。