带有Authlogic的Rails 3.2.2中的Uploadify 3.1请求不会产生current_user

时间:2012-05-10 20:28:07

标签: ruby-on-rails-3 uploadify authlogic

我正在使用带有Rails 3.2.2的Uploadify 3.1。我使用Authlogic来处理身份验证。 Authlogic提供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)}'),
      }
});

有什么想法?谢谢!

1 个答案:

答案 0 :(得分:0)

Uploadify的flash组件使用与Rails用于其会话的cookie存储不同的cookie存储。您可以使用flash_cookie_session gem来解决此问题。

从文档中看,您需要将formData修改为以下内容:

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