You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails的RSpec测试中删除加密Cookie?

删除RSpec中的加密Cookie

要删除通过cookies.encrypted设置的Cookie,你不需要使用cookies.encrypted.delete(这个方法确实不存在),直接操作底层的cookies对象即可——因为加密Cookie本质是将加密后的值存储在同名的标准Cookie中。

具体操作

  • 基础删除方式:直接调用cookies.delete并传入Cookie键名
cookies.delete('something')
  • 带选项的删除:如果设置加密Cookie时指定了domain、path、secure等额外选项,删除时必须带上完全相同的选项才能正确匹配并删除:
# 设置带选项的加密Cookie
cookies.encrypted['something'] = { value: 'a thing', domain: '.yourdomain.com', path: '/admin' }

# 匹配选项删除
cookies.delete('something', domain: '.yourdomain.com', path: '/admin')

原理说明

cookies.encrypted是Rails提供的代理对象,仅负责对Cookie值进行加密/解密,实际的Cookie存储、删除操作都由底层的cookies对象完成。因此删除加密Cookie和删除普通Cookie的逻辑一致,只需确保键名与选项匹配即可。

内容的提问来源于stack exchange,提问作者Guilherme Luiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:11:18