2016-03-28 46 views
0

正在玩这个今天,并收到这个错误,我试图找到一种解决办法。我试图让用户在用户登录其帐户时创建购物车。该错误是从我的会话控制器在创建行动ActiveRecord :: RecordNotFound“找不到购物车'id'=”

会话控制器

class SessionsController < ApplicationController 


    def create 
    .... 

    if @user && @user.authenticate(params[:user][:password]) 
     session[:user_id] = @user.id 
     @cart = Cart.create(:cart => Cart.find(params[:id])) 
     @user.cart = @cart.id 
     @user.save 
      redirect_to @user 

具体地说,它是从线即将到来

@cart = Cart.create(:cart => Cart.find(params[:id])) 

如果任何人有一个想法如何解决这个问题,请让我知道。

回答

0

我想你会喜欢的东西更好:

@cart = Cart.find_by_id(params[:id]) || @cart = Cart.create(:cart => params[:id]) 

find_by_id不会抛出一个异常,如果没有找到记录。

0

在创建之前,您无法找到购物车。如果您有购物车ID,则根本不需要创建它,只需找到它并将用户的cart_id设置为该值即可。

相关问题