2011-03-04 77 views
1

我正在使用Ruby 1.8.7和Rails 3.0.3。ActionController :: InvalidAuthenticityToken在rails 3.0.3中上传时

当我上传文件我得到以下错误:

ActionController::InvalidAuthenticityToken 

我尝试添加以下到我的模型文件:

  1. protect_from_forgery :only => [:create, :update, :destroy]
  2. skip_before_filter :verify_authenticity_token

    如何解决呢?

+0

想必您将这些添加到您的控制器,而不是型号 – noodl 2011-03-04 11:37:43

回答

0

检查表单中的HTML并确保有像<input name="authenticity_token" type="hidden" value="some_long_random_string" />这样的元素。

如果您不使用rails的表单助手,或者您以某种方式绕过了javascript,那么您不会在请求中获取该令牌。这使您可以选择禁用伪造防护还是修复表单。

+0

您正确地将它们添加到控制器工作正常。 – 2011-03-04 12:19:51

0

我刚刚遇到了这个问题,并通过确保在定义html头部分的位置包含<%= csrf_meta_tag%>来解决此问题。

当我开始使用自定义布局并且意外忘记包含该标记时,此问题对我产生了影响。

如果您在视图本身中定义了html head部分,则需要在其中包含csrf meta标记。

相关问题