Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cloudinary jquery上载未正确保存图像\u id_Javascript_Jquery_Ruby On Rails_Cloudinary - Fatal编程技术网

Javascript Cloudinary jquery上载未正确保存图像\u id

Javascript Cloudinary jquery上载未正确保存图像\u id,javascript,jquery,ruby-on-rails,cloudinary,Javascript,Jquery,Ruby On Rails,Cloudinary,我使用Cloudinary和jquery在RoR应用程序中直接从浏览器上传图像。我想我已经完全遵循了你的指示 图像上载正在工作,但返回的参数[:image_id]似乎在#符号后附加了签名,如下所示: "image_1_id"=>"image/upload/v1383951287/foobar.jpg#b023156dfebede65......."} 因此,这最终会保存在模型上。然后,当我尝试使用以下方法检索图像时: <%= cl_image_tag(@model.image_1_

我使用Cloudinary和jquery在RoR应用程序中直接从浏览器上传图像。我想我已经完全遵循了你的指示

图像上载正在工作,但返回的参数[:image_id]似乎在#符号后附加了签名,如下所示:

"image_1_id"=>"image/upload/v1383951287/foobar.jpg#b023156dfebede65......."}
因此,这最终会保存在模型上。然后,当我尝试使用以下方法检索图像时:

<%= cl_image_tag(@model.image_1_id) %>
显然,这个链接不起作用,但是如果您从末尾删除重复的路径和签名,它就会起作用

我没有使用CarrierWave,部分原因是文档中很少(没有?)说明如何或为什么将其用于非服务器端图像上传。另外,我对图像和其他属性使用了form_,这可能是问题所在吗?表单如下所示:

http://res.cloudinary.com/.../image/upload/v1/image/upload/v1383951287/foobar.jpg%23b023156d...
<%= form_for @model do |f| %>
...
<%= f.cl_image_upload(:image_1_id) %>
...
<% end %>

...
...
非常感谢您的帮助。我对这东西很陌生,所以可能是我错过了一些简单的东西。但值得一提的是,控制台中没有错误,JS文件似乎加载正确。

cloudinary\u gem samples文件夹中的示例项目展示了如何将cloudinary与CarrierWave集成用于直接和通过服务器上传

您看到的返回值按其应有的结构进行了构造。这就是如何从Cloudinary返回预加载的文件URI。如果您不想使用CarrierWave,您仍然可以使用。将您从Cloudinary收到的内容输入到
预加载文件的构造函数中可以实现双重目的,即允许您使用返回的签名(请参见
有效?
)验证上载,并将该值转换为可以输入
cl\u image\u标记的内容(请参见
标识符


您可以保留返回的完整URI,并在使用时对其进行转换,也可以将转换后的值存储到数据库中。

这就是保存模型的方法。为了正确使用cl_图像_标签

if params[:image_id].present?
  preloaded = Cloudinary::PreloadedFile.new(params[:image_id])         
  raise "Invalid upload signature" if !preloaded.valid?
  @category.image_id = preloaded.identifier
end