Rails购物车-如何在没有用户获得404的情况下销毁它们?

cecileRx

在Rails 5电子商务站点中,由于代码写得不好,传统购物车模型中的购​​物车没有被销毁,因此,现在heroku数据库中有超过10000行的空购物车。如果我从heroku控制台中销毁了它们,那么下一次已经来该站点但在购买过程中放弃的用户尝试访问该站点,将收到如下404错误消息:

ActiveRecord::RecordNotFound (Couldn't find Cart with 'id'=305)

因为饼干,显然。heroku数据库已超出其分配的存储容量,因此我需要销毁空车。(并修复代码,但这不是这里的问题)。有没有办法顺利进行此操作?

class CartsController < ApplicationController
  def show
    @cart = @current_cart
    total = []
    @cart.order_items.each do |item|

      total << item.product.price_cents * item.quantity.to_i
    end

    @cart.amount_cents_cents = total.sum

  end

  def destroy
    @cart = @current_cart
    @cart.destroy
    session[:cart_id] = nil
    redirect_to root_path
  end
end

class OrdersController < ApplicationController

  before_action :authenticate_user!

  def create
    @order = Order.new

    total = []
    @current_cart.order_items.each do |item|

      total << item.product.price_cents * item.quantity.to_i
    end

    @order.amount_cents_cents = total.sum

    if @order.amount_cents_cents == 0
       redirect_to root_path
    else
      @current_cart.order_items.each do |item|
        @order.order_items << item
        item.cart_id = nil
      end

      @user = current_user
      @order.user_id = @user.id
      @order.save

      Cart.destroy(session[:cart_id])
      session[:cart_id] = nil

      redirect_to order_path(@order)
    end
  end

class ApplicationController < ActionController::Base

  before_action  :current_cart

  def current_cart

        if session[:cart_id]
          cart = Cart.find(session[:cart_id])
          if cart.present?
            @current_cart = cart
          else
            session[:cart_id] = nil
          end
        end


        if session[:cart_id] == nil
          @current_cart = Cart.create
          session[:cart_id] = @current_cart.id
        end
  end
莫瓦兹·阿尤布(Moawaz Ayub)

find如果找不到记录,则可以使用find_by_idwhich返回而不是使用which引发异常nil如果nil可以的话,您可以将购物车清空,并向用户显示您的购物车为空的消息。

另外,您可以使用抢救块从由 find

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails:如何在购物车中添加“删除商品”?

来自分类Dev

Woocommerce获得所有用户的购物车

来自分类Dev

Woocommerce获得所有用户的购物车

来自分类Dev

如何获得购物车的多个项目

来自分类Dev

如何获得购物车的多个项目

来自分类Dev

为用户分配购物车

来自分类Dev

打开购物车中的用户权限

来自分类Dev

如何清除废弃的woocommerce购物车

来自分类Dev

如何使购物车不重复物品?

来自分类Dev

如何修复购物车codeigniter?

来自分类Dev

如何显示购物车中的产品?

来自分类Dev

如何禁用woocommerce中的购物车?

来自分类Dev

Python / Django:RelatedObjectDoesNotExist:购物车没有用户

来自分类Dev

带有Rails,迭代F4,购物车和Javascript的敏捷Web开发

来自分类Dev

如何获得特定购物车的购物车折扣?

来自分类Dev

如何在购物应用中添加购物车功能?

来自分类Dev

如何在购物车更新时更新购物车中的其他属性?

来自分类Dev

如何在shopify ios sdk中打印购物车物品,删除购物车物品?

来自分类Dev

购物车 API V3:无法为有选项的产品创建购物车

来自分类Dev

SQL如何查找仅包含特定购物车项目的购物车?

来自分类Dev

如何仅更改购物车页面上的添加到购物车文本?

来自分类Dev

如果购物车中已存在商品-reactjs,如何更新购物车数量?

来自分类Dev

将产品添加到Rails应用程序中的购物车时,找不到带有'id'=的产品

来自分类Dev

在用户点击“查看购物车”之前,我可以使“转到购物车”不启动购物车吗?

来自分类Dev

如何获得购物车首次活动中的计数?

来自分类Dev

如何在Magento购物车中使用特殊公式

来自分类Dev

如何在Woocommerce的页面顶部添加购物车按钮?

来自分类Dev

如何在购物车总额中添加折扣?

来自分类Dev

如何在Laravel中跟踪购物车表的sessionID

Related 相关文章

  1. 1

    Rails:如何在购物车中添加“删除商品”?

  2. 2

    Woocommerce获得所有用户的购物车

  3. 3

    Woocommerce获得所有用户的购物车

  4. 4

    如何获得购物车的多个项目

  5. 5

    如何获得购物车的多个项目

  6. 6

    为用户分配购物车

  7. 7

    打开购物车中的用户权限

  8. 8

    如何清除废弃的woocommerce购物车

  9. 9

    如何使购物车不重复物品?

  10. 10

    如何修复购物车codeigniter?

  11. 11

    如何显示购物车中的产品?

  12. 12

    如何禁用woocommerce中的购物车?

  13. 13

    Python / Django:RelatedObjectDoesNotExist:购物车没有用户

  14. 14

    带有Rails,迭代F4,购物车和Javascript的敏捷Web开发

  15. 15

    如何获得特定购物车的购物车折扣?

  16. 16

    如何在购物应用中添加购物车功能?

  17. 17

    如何在购物车更新时更新购物车中的其他属性?

  18. 18

    如何在shopify ios sdk中打印购物车物品,删除购物车物品?

  19. 19

    购物车 API V3:无法为有选项的产品创建购物车

  20. 20

    SQL如何查找仅包含特定购物车项目的购物车?

  21. 21

    如何仅更改购物车页面上的添加到购物车文本?

  22. 22

    如果购物车中已存在商品-reactjs,如何更新购物车数量?

  23. 23

    将产品添加到Rails应用程序中的购物车时,找不到带有'id'=的产品

  24. 24

    在用户点击“查看购物车”之前,我可以使“转到购物车”不启动购物车吗?

  25. 25

    如何获得购物车首次活动中的计数?

  26. 26

    如何在Magento购物车中使用特殊公式

  27. 27

    如何在Woocommerce的页面顶部添加购物车按钮?

  28. 28

    如何在购物车总额中添加折扣?

  29. 29

    如何在Laravel中跟踪购物车表的sessionID

热门标签

归档