【问题标题】:Carrierwave with Uploadify giving undefined method `has_key?' error带有 Uploadify 的 Carrierwave 给出未定义的方法“has_key?”错误
【发布时间】:2012-04-13 04:31:23
【问题描述】:

Rails 3.1、ActiveRecord、JQuery

我正在使用 Carrierwave 将图像上传到使用 AWS S3 的模型。非常简单,每个模型只有一张图像。我想和它一起使用 Uploadify。

没有 Uploadify 也可以正常工作,但是我得到了错误:

NoMethodError (undefined method `has_key?' for #<ImageUploader:0x00000103c7f2f0>):

上传程序的代码可自行运行,我已关注 this post 以尝试让 Uploadify 正常工作。然后我使用this code 解决了 CSRF 问题。

在edit.html.erb中设置Uploadify的代码是:

<% content_for :head do %>
  <%= javascript_include_tag 'jquery.uploadify.v2.1.4.min' %>
  <%= javascript_include_tag 'swfobject' %>
<% end %>
<%= content_for :scripts do %>
  <script type="text/javascript">
  <% session_key_name = Rails.application.config.session_options[:key] %>
    jQuery('input#facility_image').uploadify({
      'uploader'     : '/assets/uploadify.swf',
      'script'       : '<%=facilities_path%>',
      'fileDataName' : 'facility[image]',
      'fileExt'      : '*.png;*.jpg;*.gif',
      'cancelImg'    : '/assets/cancel.png',
      'multi'        : false,
      'scriptData'   :  {
           '_http_accept': 'application/javascript',
           '<%= session_key_name %>' : encodeURIComponent('<%= u cookies[session_key_name] %>'),
           'authenticity_token': encodeURIComponent('<%= u form_authenticity_token %>'),
        },
      'auto'         : true,
      'buttonText'   : 'Upload Image',
      'onComplete'   : function(e, id, obj, response, data) {
        $('#images').append(response);
      }
    });
  </script>
<% end%>

有人知道为什么会发生这个错误和/或如何解决它吗?

【问题讨论】:

    标签: ruby-on-rails-3.1 uploadify carrierwave


    【解决方案1】:

    如果你正在使用 devise,这是一个更好的修复 http://ariejan.net/2011/03/27/rails-3-devise-uploadify-no-flash-session-hacks

    【讨论】:

      猜你喜欢
      • 2011-09-21
      • 2014-05-06
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多