gravatarでサイトに自身のアバター写真を表示させる(RAILS)


イメージ

1.Gravatar登録、写真アップロード

2.コード

application_helper.rb
module ApplicationHelper
  def avatar_url(user)
    gravatar_id = Digest::MD5::hexdigest(user.email).downcase
    "https://www.gravatar.com/avatar/#{gravatar_id}.jpg?d=identicals&=150"
  end
end

説明:user objectよりuser emailをinput parameterとして取得。Digest::MD5::hexdigestよりuser emailをmd5スタンダードに変換して(参考:https://qiita.com/tdrk/items/2272f19cf0229df69554)、変数gravatar_idに代入。
そして次のリンクに返す。

3.自分の登録EメールのMD5をチェック

まずhttps://www.md5hashgenerator.com/
で自分のメールアドレスを入力してMD5ハッシュを生成する
次にhttp://gravatar.com/avatar/生成したハッシュ.jpg
をURLに打つとGRAVATARで登録した画像が表示されるはず。
これが実は#2のコードの流れと似ています。

4.HTMLにimage_tagを追加

例.html.erb
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
                  role="button" aria-haspopup="true" aria-expanded="false">
                  <%= image_tag avatar_url(current_user), class: "image-circle avatar_small" %>&nbsp
                  <%= current_user.fullname %> <span class="caret"></span></a>

class: "image-circle avatar small" %>&nbspの部分でアバターを丸めて、scss設定したavatarのサイズを適用して、間にスペースをおきます。

5.補足

avatar_urlはヘルパーであるためアプリ内においてどこでも使用できる。