2011-03-04 82 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標記。

相關問題