Ruby on rails Rails:ActiveRecord::RecordNotFound在购物车中
我为所有项目提供了用户友好的\u id。我在cart.rb模型中得到一个错误,它说<代码>找不到“id”为钢笔的产品 我不知道该怎么办。任何帮助都将不胜感激 cart.rbRuby on rails Rails:ActiveRecord::RecordNotFound在购物车中,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我为所有项目提供了用户友好的\u id。我在cart.rb模型中得到一个错误,它说找不到“id”为钢笔的产品 我不知道该怎么办。任何帮助都将不胜感激 cart.rb class CartItem < ActiveRecord::Base attr_reader :product_id, :quantity def initialize product_id, quantity = 1 @product_id = product_id @qu
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
def initialize_cart
@cart = Cart.build_from_hash session
end
def build_order_items
@cart.items.each do |item|
@order.order_items.create! product_id: item.product_id, quantity: item.quantity
end
OrderForm.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
def initialize_cart
@cart = Cart.build_from_hash session
end
def build_order_items
@cart.items.each do |item|
@order.order_items.create! product_id: item.product_id, quantity: item.quantity
end
您的CartItem的
产品方法仍然单独使用.find
方法,当您输入字符串作为参数而不是数字ID时,该方法可能会引发错误。请尝试将其修改为使用.friendly.find
希望这有帮助 从散列会话生成Cart.build是什么?什么是Cart
实现?您在哪一行得到您提到的错误?它来自订单模型,我将补充到问题中