在铁路的购物车通过书

时间:2012-08-13 12:56:16

标签: ruby-on-rails ruby ruby-on-rails-3

通过这样的书:

  

使用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不理解我的+ =赋值?

1 个答案:

答案 0 :(得分:1)

它不是+ =的问题,问题是你试着用你的代码做这个。

nil + 1

数量首次为零。