Как мне отобразить аватар в Rails

#ruby-on-rails-3

#ruby-on-rails-3

Вопрос:

Я создаю блог, в котором у автора есть собственная страница с заголовками, которые они написали, и он хотел бы отобразить аватар и адрес электронной почты. Как бы я это сделал?

Спасибо

Ответ №1:

Одним из решений является использование скрепки. Он очень прост в использовании, и вы можете отображать одно и то же изображение в нескольких размерах. Например, аналогично SO вы можете показывать аватары меньшего размера на странице вопросов и аватары большего размера, когда вы находитесь на информационной странице пользователя.

Пример

 class User < ActiveRecord::Base
  has_attached_file :avatar, 
                    :styles => { :large_avatar => "300x300>", 
                                 :small_avatar => "100x100>" }
end
  

Вам нужно будет только добавить это в свою модель, а затем несколько дополнительных столбцов для миграции. Я хочу сказать, что использование решения не требует больших накладных расходов. Вам нужно будет включить несколько других параметров для форм, которые вы используете для отправки URL-адреса файла и т.д., Но это действительно просто.

Ответ №2:

http://gravatar.com в последнее время его популярность возросла, он используется в stackoverflow и github.

Для отображения аватара используется md5-хэш адреса электронной почты.

Использование:

 require 'digest/md5'
"http://www.gravatar.com/avatar/#{Digest::MD5.hexdigest("Email Address".downcase)}?s=128"
  

Результат:

 http://www.gravatar.com/avatar/012f4052c6fb1a600a3e4f39e1f2439a?s=128
  

http://www.gravatar.com/avatar/012f4052c6fb1a600a3e4f39e1f2439a?s=128

Ответ №3:

Если у вас есть информация об их адресе электронной почты, я бы рекомендовал использовать Gravatar.

По сути, вы создаете md5-хэш их адреса электронной почты (после преобразования его во все символы нижнего регистра) и используете это для создания URL-адреса изображения.

У них есть плагины для многих движков блогов, и это очень просто реализовать без плагина. Посмотрите их страницу Ресурсов для разработчиков.