2015-02-14 1 views
3

Я работаю с Ruby on Rails для разработки приложения, и я действительно борюсь со следующей проблемой.Работа с облачной загрузкой, но не может получить изображение

У меня есть настройка Cloudinary http://cloudinary.com/documentation/rails_integration, а также Attachinary https://github.com/assembler/attachinary, чтобы пользователи могли загружать изображение профиля с помощью приложения rails. Я также хочу иметь возможность загружать эти изображения в приложение Rails, чтобы показать изображение профиля пользователя.

Я установки следующий код в файле 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

В форме try: <%= user.attachinary_file_field :avatar %>.

Вы должны быть в состоянии получить их через модель следующим образом: <%= image_tag user.avatar.url if user.avatar? %>, или, как это указано в документации Attachinary: <%= cl_image_tag(@user.avatar.path, { size: '180x180', crop: :thumb, gravity: :face }) %>. Опустите тег <img>, и я предлагаю не использовать встроенный css.

У вас может быть ошибка 400 для обслуживания изображений через HTTP вместо HTTPS. Чтобы исправить это, вы должны добавить secure: true в cloudinary.yml или добавить :secure => true в тег изображения.

Я не могу писать комментарии ... Есть ли какие-либо ошибки, можете ли вы публиковать журналы ошибок?

Смежные вопросы