首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloudinary cl_image_upload vs cl_image_upload_tag

Cloudinary cl_image_upload vs cl_image_upload_tag
EN

Stack Overflow用户
提问于 2014-07-08 10:23:22
回答 1查看 1.5K关注 0票数 1

我正在尝试启用从浏览器到cloudinary的直接图像上传。我有的问题是,图像没有被上传给下面的语法。

代码语言:javascript
复制
<%= form_for(@product_image) do |f| %>
  <div class="field">
    <%= f.cl_image_upload(:image) %>
  </div>
  <%= f.submit %>
<% end %>

如果我替换这个块

代码语言:javascript
复制
<%= f.cl_image_upload(:image) %>

使用

代码语言:javascript
复制
<%= cl_image_upload_tag("product_image[image]") %>

上载仍然不会发生。但是,如果我将它们放在一起,那么两个都会上传。

我比较了两个cloudinary helper方法生成的html,它们生成的html代码完全相同。查看这两个帮助器方法的代码,一个方法似乎正在调用另一个方法。

代码语言:javascript
复制
def cl_image_upload(object_name, method, options={})
  cl_image_upload_tag("#{object_name}[#{method}]", options)
end

代码语言:javascript
复制
def cl_image_upload_tag(field, options={})
  html_options = options.delete(:html) || {}
  if options.delete(:multiple)
    html_options[:multiple] = true
    field = "#{ field }[]" unless field.to_s[-2..-1] == "[]"
  end

  tag_options = html_options.merge(:type=>"file", :name=>"file",
    :"data-url"=>cl_upload_url(options),
    :"data-form-data"=>cl_upload_tag_params(options),
    :"data-cloudinary-field"=>field,
    :"class" => [html_options[:class], "cloudinary-fileupload"].flatten.compact
  ).reject{|k,v| v.blank?}
  content_tag("input", nil, tag_options)
end

如果我真的想只使用一个块图像f.cl_image_upload(:%> ),那么我还必须添加额外的javascript

$('.cloudinary-fileupload).cloudinary_fileupload();

在您看来,使用Carrierwave从浏览器直接上传到cloudinary的最佳方式是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-07-08 19:42:20

Cloudinary有一个完整的工作样例项目,其中包括使用jQuery库的客户端上传,包括CarrierWave集成。你可以看看并尝试一下:https://github.com/cloudinary/cloudinary_gem/tree/master/samples/photo_album

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24622764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档