当用户在浏览器中禁用cookie并使用我的Rails应用程序时,他会收到错误:ActionController :: InvalidAuthenticityToken,因为会话数据无法存储在cookie中。
我知道Rails可以选择禁用会话数据或更改会话存储,但这不是我的选择。我想给用户一个通知,告知他应该在浏览器中禁用cookie或至少自定义错误页面时启用cookie。相反,ActionController :: InvalidAuthenticityToken会显示错误消息“在您的浏览器中禁用了cookie,请启用以使页面正常工作”。
我该怎么做?有人可以提供一段代码,因为我是Rails的新手,并用教程创建了我的第一个应用程序?
答案 0 :(得分:0)
发生这种情况时,会显示在日志中(422错误):
Can't verify CSRF token authenticity
Completed 422 Unprocessable Entity in 9ms
处理此问题的一种快捷方法是编辑公共文件夹中的public / 422.html页面以显示您的Cookie错误消息。创建应用程序时,默认情况下应由rails生成。
如果你没有它,你应该能够在public / 422.html中创建文件,rails应该使用它(如果我没有弄错的话,可以使用3.0+)。