2013-01-16 4 views
3

Je suis passé par cette railscast sur Gravatars et j'ai maintenant la méthode d'assistance ci-dessous dans mon assistant d'application.Rails Gravatar Helper Method

module ApplicationHelper 
    def avatar_url(user) 
    gravatar_id = Digest::MD5.hexdigest(user.email.downcase) 
    "http://gravatar.com/avatar/#{gravatar_id}.png?s=200" 
    end 
end 

et j'ai ce à mon avis

<%= image_tag avatar_url(user) %> 

comment puis-je modifier l'aide afin qu'il accepte une option de taille qui change les s = 200 à la taille spécifiée?

Merci

Répondre

17
module ApplicationHelper 
    def avatar_url(user, size) 
    gravatar_id = Digest::MD5.hexdigest(user.email.downcase) 
    "http://gravatar.com/avatar/#{gravatar_id}.png?s=#{size}" 
    end 
end 

appeler ensuite:

<%= image_tag avatar_url(user, 200) %> 

Vous pouvez également consulter Michael Hartl's guide.

+0

Cest grand merci, est-il un moyen que je peux mettre un défaut? – Ollie2619

+2

Oui ajouter: def avatar_url (user, size = 200) devrait fonctionner –

+0

Merci pour votre aide tom beaucoup apprécié – Ollie2619

1

Dans le fichier application_helper.rb dans le dossier app/helpers, ajoutez la méthode suivante:

def gravatar_for(user, options = { size: 200}) 
gravatar_id = Digest::MD5::hexdigest(user.email.downcase) 
size = options[:size] 
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}" 
image_tag(gravatar_url, alt: user.username, class: "img-circle") 
end 

appeler Ensuite, au show.html.erb:

<%= gravatar_for @user, size: 200%> 
+0

S'il vous plaît jeter un oeil sur la façon dont votre réponse est rendue avant de cliquer sur "poster votre réponse". Pour corriger le formatage, j'ai dû insérer une nouvelle ligne entre le texte et le bloc de code qui le suit. Si vous l'avez envoyé via l'application mobile, il existe également un aperçu. –