Cloudinary上传有效,但无法检索图像

时间:2015-02-14 15:30:26

标签: ruby-on-rails ruby devise cloudinary

我正在使用Ruby on Rails来开发一个应用程序,我真的在努力解决以下问题。

我已经设置了Cloudinary http://cloudinary.com/documentation/rails_integration以及Attachinary https://github.com/assembler/attachinary供用户使用rails应用程序上传配置文件图像,我还希望能够在Rails应用程序中加载这些图像以向用户显示#39;的个人资料图片。

我在user.rb模型文件中设置了以下代码

has_attachment :avatar, :accept => [:jpg, :png, :gif]

用户的编辑页面位于我的应用程序的Devise视图下 - edit.html.erb。以下表格是我用来上传用户头像/个人资料图片的内容:

  <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :post }) do |f| %>
            <%= cl_image_upload_tag(:avatar) %>   
              <%= f.button :submit %>    
<% end %>

在同一个View文件中,我使用以下代码检索个人资料图片:

 <div class="profile-image" align="center">
                <% if @user.avatar.present? %>
                <img src="<%= cloudinary_url(@user.avatar.path) %>" width="180px" height="180px" alt=""/>
                <% else %>
                     <img src="<%= asset_path "person.png" %>" width="180px" height="180px" alt=""/>
            <% end %>

            </div>

当图像上传到Cloudinary时,会给出一个随机文件名,例如:ecwc8x4ult960jzk8dp0

我是否正确上传图片以及如何检索图片?

1 个答案:

答案 0 :(得分:0)

在表单中尝试:<%= user.attachinary_file_field :avatar %>

你应该能够通过这样的模型检索它们:<%= image_tag user.avatar.url if user.avatar? %>,或者像附件的文档中所说的那样:<%= cl_image_tag(@user.avatar.path, { size: '180x180', crop: :thumb, gravity: :face }) %>。省略<img>标记,我建议不要使用内联css。

通过HTTP而不是HTTPS提供图像可能会出现400错误。要解决此问题,您应该将secure: true添加到cloudinary.yml或将:secure => true添加到图片代码。

我无法写评论......是否有任何错误,您是否可以发布错误日志?