デフォルトのアイコンを用意するGravator

こんにちは!kossyです!




本日気になったニュースはこちら
headlines.yahoo.co.jp

海外でよくない事例が頻発しているのに、それでも民営化を推し進めるのは、
水道事業の負担が地方財政に重くのし掛かっているからなのでしょうか。

あまり利益の望めない事業に喜んで参画する企業も少ないのではないかとは思います、、、





さて、今回は、Gavatorというメールアドレスにアイコンを登録してくれるサービスの
導入方法についてブログに残してみたいと思います。





環境
Rails 5.1.6
Ruby 2.5.1
MacOS Mojave





導入手順

アプリの仕様にもよりますが、今回は、
テンプレートのどこでも呼べるように 、
app/helpers/application_helper.rb にavator_urlというメソッドを定義します。

application_helper.rb

 def avatar_url user
    return user.image if user.image
    gravatar_id = Digest::MD5::hexdigest(user.email).downcase
    "https://www.gravatar.com/avatar/#{gravatar_id}.jpg"
  end

後は表示させたいビューで、

# hamlで書いてます

= image_tag avatar_url(@user)

と記述すれば、もしUsersテーブルのimageに値があればそちらを優先して参照し、
無かった場合はGravatarからアイコンを持ってくるようになります。