购物车功能优化与Ajax应用实践
1. 购物车错误处理
在展示购物车功能后,客户发现电商网站存在被攻击的风险。当手动输入错误的购物车ID(如 http://localhost:3000/carts/wibble )时,应用程序会暴露过多信息,显得不专业。因此,需要对应用程序进行优化,使其更具弹性。
当 Cart.find(params[:id]) 无法找到购物车时,会抛出 RecordNotFound 异常。对于该异常,有两种处理思路:
- 静默忽略 :从安全角度看是最佳选择,但如果代码中产生错误的购物车ID,应用程序将无响应,用户无法得知错误信息。
- 记录日志并重新显示目录页 :使用Rails的日志功能将错误记录到内部日志文件,并重新显示目录页,同时向用户显示简短消息(如“无效购物车”)。
以下是修改后的 show 方法代码:
# GET /carts/1
# GET /carts/1.json
def show
begin
@cart = Cart.find(params[:id])
rescue ActiveRecord::RecordNotFound
logger.error "Attempt to access invalid cart #{params[:id]}"
redirect_to store_url, notice: 'Invalid
超级会员免费看
订阅专栏 解锁全文
69

被折叠的 条评论
为什么被折叠?



