Rails: ActiveRecord::RecordNotFound in Cart



为所有项目设置userfriendly_id。我的购物车出现了错误。Rb模型说。Couldn't find Product with 'id'=the-pen

我不知道该怎么办。如有任何帮助,不胜感激

cart.rb

class CartItem < ActiveRecord::Base
    attr_reader :product_id, :quantity
    def initialize product_id, quantity = 1
        @product_id = product_id
        @quantity = quantity
    end
    def increment
        @quantity = @quantity + 1
    end
    def product
        Product.find product_id
    end
    def total_price
        product.price * quantity    
    end

end

ApplicationController.rb

def initialize_cart
    @cart = Cart.build_from_hash session
end

OrderForm.rb

def build_order_items
    @cart.items.each do |item|
        @order.order_items.create! product_id: item.product_id, quantity: item.quantity
    end

您的CartItem的product方法仍然使用.find方法本身,这可能会抛出错误,因为您输入字符串作为参数而不是数字ID。试着用.friendly.find来代替。

希望这对你有帮助!

相关内容

  • 没有找到相关文章