2012-05-10 54 views
2

我正在使用Uploadify 3.1和Rails 3.2.2。我使用Authlogic來處理認證。 Authlogic提供了一個current_user方法,該方法向發出請求的用戶提供。使用Authlogic的Rails 3.2.2中的Uploadify 3.1的請求不產生current_user

當我嘗試使用Uploadify 3.1上傳某個文件時,當在動作中查找時未設置current_user,它會給出nil。 Uploadify 2.1.4沒有發生這種情況。這裏是我打電話uploadify:

jQuery('#something').uploadify({ 

     uploader  : '#{some_path_from_rails_routes}', 
     swf    : '/uploadify/uploadify.swf', 
     cancelImg  : '/uploadify/cancel.png', 
     fileTypeDesc : 'FileNames', 
     auto   : true, 
     removeCompleted : false, 
     buttonText  : 'Some Label', 
     formData  : { 
     '_http_accept': 'application/javascript', 
     '#{session_key_name}' : encodeURIComponent('#{u(cookies[session_key_name])}'), 
     'authenticity_token' : encodeURIComponent('#{u(form_authenticity_token)}'), 
     } 
}); 

有什麼想法?謝謝!

回答

0

Uploadify的Flash組件使用與Rails用於會話的不同的Cookie存儲。您可以使用flash_cookie_session寶石來解決此問題。

從它的文檔,它看起來像你將需要修改formData到這樣的事情:

{ 
    "<%= key = Rails.application.config.session_options[:key] %>" : "<%= cookies[key] %>" 
    "<%= request_forgery_protection_token %>" : "<%= form_authenticity_token %>", 
} 
+0

現在這是建立在uploadify護欄的寶石,爲3.1.1.1版本。只需在uploadify-rails之前在您的Gemfile中包含flash_cookie_session,它將在幕後爲您處理所有事情。 –

+0

@IsaacBetesh其中uploadify-rails gem?這一個似乎是一個近2年沒有上傳的空殼 - https://github.com/nragaz/uploadify-rails – JoshL

+0

Filip Tepper's:https://github.com/filiptepper/uploadify-rails(這是你可以在rubygems.org上找到的) –