RailsアプリでGravatarのプロフィール画像を表示させたい!
どうも、Linです。餃子で粘ってます。
「Railsアプリでユーザーのプロフィール画像を表示させたいな!」
ってときありますよね?
そんなときに便利なのが、
Gravatar というサービスを利用する
という方法です。
こちらは一言でいうと、
メールアドレスを登録するだけで、自分のプロフィール画像を設定できるサービスです。
こちらのGravatarを活かす方法が「一人で作る rails」という本で紹介されていたので、早速試してみたのです。
ただ、この本の通りにコードを書いてみたら、railsのバージョンの違いらか表示できませんでした。
腐るに腐ってググってみたところ、
「gravtastic」というgemならできる
との情報が。
こちらのサイトを参考にさせていただきましたね。
Railsチュートリアルのやり方では、Gravatar画像が表示されないときの対処法
Railsアプリで「gravtastic」を使ってGravatarのプロフィール画像を表示する方法
それでは早速その方法をメモしておきます。
前提として、Railsのアプリにuserテーブルが存在していて、なおかつdeviseでログインシステムを導入している必要があるみたいです。
railsのバージョンは4.2です。
方法1. gemに「gravtastic」を追加
まずはgem fileにgravtasticを追加してみましょう。
1 |
gem 'gravtastic' |
をGemfileに追記すればいいですね。
追加完了したら、
1 |
$ bundle install |
を唱えてあげましょう。
方法2.userモデルに追記
お次は、userモデルファイルのuser.rbに、
1 2 |
include Gravtastic gravtastic |
を追記してあげましょう。
方法3. 画像表示
あとは、Gravatarのプロフィール画像を表示してあげるだけ。
例えば、ログインしているユーザーのすべてのページに表示させる場面を想定してみましょう。
この場合、appliation.html.erbの<body>内に次のタグを挿入していきます。
1 2 3 |
<%if user_signed_in? %> <%= image_tag current_user.gravatar_url%> <%end%> |
すると、次のように不自然ながらも、ログイン中のユーザーの全ページにGravatarのプロフィール画像の表示に成功しました!

※userのemailがgravatarに登録していない場合、上のような画像が表示されます
と、このような感じで、deviseを使ったuserテーブルならgravatarの画像が簡単に表示できるのでおすすめです。
こちらのgemの使い方はRailsチュートリアルで登場するそうなので、ぼくもこの茨の道にそろそろ進んでみようと思います。
それでは!
Lin

おそらく、ブロガー。現在ホテル暮らしで全国フラフラしています。
ネット広告代理店に1年3ヶ月勤め上げ、独立をして丸4年が経ちました。今年でフリーランス 5年目。
質問・ご意見・相談があればLINEで受け付けていますのでお気軽にどうぞ 。
コメントを残す