ActiveRecord :: RecordNotFound“无法找到带有'id'=”的购物车

时间:2016-03-28 17:37:27

标签: ruby-on-rails activerecord

今天正在玩这个并收到这个错误我试图找到解决办法。我试图拥有它,以便在用户登录他/她的帐户时创建购物车。错误来自我在创建操作的会话控制器

会话控制器

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]) )

如果有人知道如何解决这个问题,请告诉我。

2 个答案:

答案 0 :(得分:0)

我认为你会更喜欢这样的事情:

@cart = Cart.find_by_id(params[:id]) || @cart = Cart.create(:cart => params[:id])
如果找不到记录,

find_by_id不会抛出异常。

答案 1 :(得分:0)

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