在 E3 部分中,它说要替换以下方法:
def destroy
@cart = Cart.find(params[:id])
@cart.destroy
和
def destroy
@cart = current_cart
@cart.destroy
在哪里
def current_cart
Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
我的问题是,使用第二种方法比第一种方法有什么优势?我看不到第二个会失败的任何情况?这是从以下位置调用方法:
<%= button_to 'Delete Cart', method: :destroy %>
从购物车视图中。它不是总是隐含地传递正确的cart_id吗?或者这个修改是为了将来使用而销毁,例如当我们试图从另一个视图中删除购物车时?如果后一种解释是正确的,我们是否需要始终将 id 存储在 :session 哈希中?
谢谢你的帮助。