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%>
任何人都知道为什么会发生这种错误和/或如何修复它?
答案 0 :(得分:0)
如果您正在使用设计,这是一个更好的解决方法http://ariejan.net/2011/03/27/rails-3-devise-uploadify-no-flash-session-hacks