2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】Gravatarによるプロフィール画像の表示【Rails Tutorial 7章まとめ】

Last updated at Posted at 2019-11-27

##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にアクセスして、ちゃんと表示されているか確認する。
スクリーンショット 2019-11-28 2.00.26.jpg
プロフィール画像を設定したメールアドレスの場合
スクリーンショット 2019-11-28 2.02.52.jpg

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も変更していることに注意する。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?