そのような本を介して:
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での以前のプロジェクトではすべて問題ありませんでしたが、今では
nil をデータベースの Fixnum に強制することはできません。数量は null です
このようにコードを変更すると
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 が私の += 割り当てを理解しないのはなぜですか?