【发布时间】: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