我正在使用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
我是否正确上传图片以及如何检索图片?
答案 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
添加到图片代码。
我无法写评论......是否有任何错误,您是否可以发布错误日志?