Rails:如何为用户提供通知或自定义错误页面以启用cookie

时间:2010-10-02 14:04:30

标签: ruby-on-rails

当用户在浏览器中禁用cookie并使用我的Rails应用程序时,他会收到错误:ActionController :: InvalidAuthenticityToken,因为会话数据无法存储在cookie中。

我知道Rails可以选择禁用会话数据或更改会话存储,但这不是我的选择。我想给用户一个通知,告知他应该在浏览器中禁用cookie或至少自定义错误页面时启用cookie。相反,ActionController :: InvalidAuthenticityToken会显示错误消息“在您的浏览器中禁用了cookie,请启用以使页面正常工作”。

我该怎么做?有人可以提供一段代码,因为我是Rails的新手,并用教程创建了我的第一个应用程序?

1 个答案:

答案 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+)。