2017-01-16 14 views
0

私はMichael Hartl's railsのチュートリアルで作業しています。現在、ユーザープロファイルにグラバターイメージを追加しようとしています。しかし、グラビアのデフォルト画像は、私のユーザーの表示ページには表示されません。Gravatarの画像が表示されませんか?

ヘルパー/ users_helper.rb

module UsersHelper 

    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 

ユーザー/ show.html.erb

<% provide(:title, @user.name) %> 
<h1> 
    <%= gravatar_for @user %> 
    <%= @user.name %> 

</h1> 

users_controller.rb

class UsersController < ApplicationController 
    def new 
    end 

    def show 
    @user = User.find(params[:id]) 
    end 
end 

私はgravatarのURLをダブルチェックしましたが、まだロードされていないようです。サーバーの再起動も試行しました。問題は確実ではないのですか?

gravatar_for(@user)については、変数を渡す必要がある方法どのように見えるか

+0

エラーをお持ちですか?あなたの質問を 'users_controller.rb'ファイルで更新してください。 – Hizqeel

+0

更新されました。はい、グラバター画像がユーザーの表示ページに表示されます。 – MisterCal

+0

あなたが提供している電子メールは[gravatar.com](https://en.gravatar.com/)にアカウントを持っていますか?新しいアカウントの場合は、表示に数分かかることがあります。 – Hizqeel

答えて

3

あなたのコードが正しいですが、おそらくチュートリアルのあなたの演習の一つで、あなたが画像を非表示にするには、いくつかのカスタムクラスを作成するのに役立ちます願っています。そのない場合は、その後noneからimage-displayを削除した場合none

image { 
display: none; 
} 

imageクラスを設定します。

0

+1

インスタンスvarableを使用すると、ヘルパー自体が定義されていないためエラーが発生します。ヘルパーですが、それでも同じ問題です。'user'もデータベースの定義済みの変数なので、変数は問題ではないと思います。 – MisterCal

0

写真を表示するには、グラビアIDが必要です。あなたがグラバター上で新しい口座を開くことをしたくない場合は、あなたのusers_helper.rbに以下のコードを使用することができます。

module UsersHelper 

    # Returns the Gravatar for the given user. 
    def gravatar_for(user, options = { size: 180 }) 
    gravatar_id = 1 
    size = options[:size] 
    gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}" 
    image_tag(gravatar_url, alt: user.name, class: "gravatar") 
    end 
end 

NOTEあなたがグラバター口座を開く場合は、あなたがすることはできませんあなたのメールアドレスを削除してください。ほとんどのユーザーはこの問題について不平を言っていました。

私はそれが

関連する問題