2010-08-03 54 views
1

當我選擇一個文件,然後單擊「它發送到服務器」Ruby on Rails的:問題得到CKEDITOR上傳圖片

我得到的錯誤:

ActionController::InvalidAuthenticityToken in MediasController#new_from_disk 

Parameters: 

{"upload"=>#<File:/var/folders/Fr/FrWbhcV1HdGpFgn7Lh7OhU+++TI/-Tmp-/RackMultipart20100802-4884-olu0e5-0>, 
"CKEditorFuncNum"=>"42", 
"langCode"=>"en", 
"CKEditor"=>"object_content_body"} 

從我的理解,CKEditor的上傳發送我的ruby操作文件,然後我在那裏處理它。所以我不需要一個與我的new_from_disk動作相關的視圖(目前它什麼都不做)。

以下是上傳/瀏覽已上傳內容的文檔。它沒有幫助我。 http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)/Custom_File_Browser

任何人有任何提示/指南?

回答

0

默認情況下,Rails希望提交用戶的真實性標記 - 如果不是,則引發異常。這是爲了防止CSRF(請參閱Rails API

無論何時您使用form_for,Rails都會將此真實性標記添加爲隱藏輸入,以便與表單一起提交。

由於您未使用form_for(或其衍生產品),因此您需要將此令牌顯式添加到您提交的參數中。您可以使用#{form_authenticity_token}訪問令牌的值。您如何提交它將取決於CKeditor的API。

或者,您也可以禁用身份驗證令牌在每個動作的基礎檢查(推薦!)像這樣:

class MediasController < ApplicationController 
    skip_before_filter :verify_authenticity_token, :only => [:new_from_disk] 

    ... 
end