2015-05-29 3 views
1

I user friendly_id для всех предметов. Я получаю сообщение об ошибке в модели cart.rb. Couldn't find Product with 'id'=the-penРельсы: ActiveRecord :: RecordNotFound в корзине

Я не уверен, что делать. Любая помощь будет оценена

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 
+0

Что такое 'Cart.build_from_hash session' здесь? Что такое «Корзина»? На какой строке вы получаете сообщение об ошибке? – Surya

+0

Его модель OrderForm, я добавлю к вопросу – JamesRocky

ответ

1

Ваш метод CartItem product по-прежнему использует метод .find сам по себе, который может вызывать ошибку, поскольку вы вводите строку в качестве аргумента вместо числового идентификатора. Попробуйте изменить его вместо .friendly.find.

Надеюсь, это поможет!

+0

Ваш гений, спасибо – JamesRocky

Смежные вопросы