2017-01-16 78 views
0

我正在通過Michael Hartl的rails教程工作,並且正在嘗試將gravatar圖像添加到用戶配置文件。但是,gravatar默認圖像不會加載到我的用戶顯示頁面上。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網址,但它似乎仍未加載。也嘗試重新啓動服務器。不確定問題是什麼?

+0

您有任何錯誤嗎?用'users_controller.rb'文件更新你的問題。 – Hizqeel

+0

已更新。是的,gravatar圖片現在顯示在我的用戶展示頁面上。 – MisterCal

+0

您提供的電子郵件是否在[gravatar.com](https://en.gravatar.com/)有一個帳戶?如果它是新帳戶,則可能需要幾分鐘時間才能顯示。 – Hizqeel

回答

3

你的代碼是正確的,但大概在教程中你練習一個你寫一些自定義的類來隱藏圖像。在image類爲none

image { 
display: none; 
} 

如果它不是的話,那麼從none刪除image-display

0

gravatar_for(@user)

是什麼樣的,需要傳遞一個變量的方法。

+1

使用實例varable會給出一個錯誤,因爲它沒有定義if或助手本身。但是,我嘗試在幫手,但仍然是同樣的問題。'user'也是數據庫中定義的變量,所以我不相信這個變量是問題。 – MisterCal

0

您需要gravatar ID才能顯示您的照片。如果你不希望開闢新的帳戶上的gravatar您可以在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 

注意如果你打開的gravatar帳戶,您將無法刪除你的郵箱地址。大多數用戶都在抱怨這個問題。

我希望它能幫助