##Gravatar
Gravatar(http://ja.gravatar.com/ )は、メールアドレスとプロフィール画像を関連づけてくれるサービスである。
##Gravatarヘルパーメソッド
UserオブジェクトからGravatarに登録された画像を表示できるようにするため、gravatar_forヘルパーメソッドを作成する。
app/helpers/users_helper.rb
module UsersHelper
# 引数で与えられたユーザーのGravatar画像を返す
def gravatar_for(user)
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
end
内容の詳細は無視することにして、これをユーザー表示ビューで使用してみる。
app/views/users/show.html.erb
<% provide(:title, @user.name) %>
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>
/users/1にアクセスして、ちゃんと表示されているか確認する。
プロフィール画像を設定したメールアドレスの場合
gravatarの画像は.gravatarというcssクラスが与えられている。
###サイズのオプション引数
次のようにすると、gravatar_for user, size: 50のようにサイズを指定して呼び出せる。
app/helpers/users_helper.rb
module UsersHelper
# 引数で与えられたユーザーのGravatar画像を返す
def gravatar_for(user, size: 80)
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
end
3行目のURLも変更していることに注意する。