使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby on rails 代码中的某个错误
Posted
技术标签:
【中文标题】使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby on rails 代码中的某个错误【英文标题】:direct upload with cloudinary - 'No such file or directory' error, probably is a mistake somewhere on my code of ruby on rails 【发布时间】:2012-08-04 05:40:37 【问题描述】:我正在尝试将表单上上传的图像直接上传到我的云端。
这是它在我的代码上为用户编辑表单:
<%= form_for(@user) do |f| %>
<% if @user.name == nil %>
<div>
<label for="user_username">Username or Email</label>
<input id="user_username" name="user[username]" size="30" type="text" />
</div>
<% else %>
<div>
<%= f.label :username_or_Email %>
<%= f.text_field :username %>
</div>
<% end %>
<div>
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div>
<%= f.label :password %>
<%= f.password_field :password %>
</div>
<div>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</div>
<div>
<%= file_field_tag 'image' %>
</div>
<div><%= f.submit "Update", :class => 'btn' %></div>
<% end %>
我的用户控制器提交到的地方有一行叫做:
Cloudinary::Uploader.upload(params[:image], :public_id => @user.username)
Cloudinary 文档中提供了这一行,我得到的错误是:
没有这样的文件或目录 - 屏幕截图 2012-07-26 at 3.26.05 PM.png
Request
Parameters:
"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"ueS/aqqCtsIH7ikVA1pq4LfWn044xltFnPQ6Dc0yQXE=",
"user"=>"username"=>"asuri@yahoo.com",
"name"=>"Ankit Suri",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]",
"image"=>"Screen Shot 2012-07-26 at 3.26.05 PM.png",
"commit"=>"Update",
"id"=>"P9q5l9gmea"
有人能找出错误在哪里吗?
【问题讨论】:
【参考方案1】:为了在 Rails 表单中上传文件,您需要确保它使用的是Multipart
。
只需将您的 form_for
呼叫更改如下:
<%= form_for(@user, :html => :multipart => true) do |f| %>
此外,您还应该考虑使用CarrierWave 或Attachinary 来管理图片上传。
【讨论】:
【参考方案2】:您的 cloudinary.yml 文件呢?
您可以使用此链接下载它:http://cloudinary.com/console/cloudinary.yml 并将其放在您的config/
目录下
【讨论】:
以上是关于使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby on rails 代码中的某个错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery 使用 Cloudinary API 直接上传图片
如何使用 Cloudinary jQuery 插件直接从页面上传图片?
如何在 Rails 中使用 Cloudinary 将直接上传字段与模型相关联?