2013-01-16 45 views
3

我在Gravatars上經歷了這個railscast,我現在在我的應用程序幫助程序中有下面的幫助程序方法。Rails Gravatar幫助程序方法

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 

和我有這個在我看來

<%= image_tag avatar_url(user) %> 

如何修改助手所以它將接受一個尺寸選項,改變S = 200的大小規定?

感謝

回答

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 

然後調用:

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

您還可以檢查Michael Hartl's指南。

+0

這就是偉大的感謝你,是有辦法,我可以設置默認? – Ollie2619

+2

是的,請添加:def avatar_url(user,size = 200)應該可以工作 –

+0

感謝您的幫助tom非常感謝 – Ollie2619

1

app/helpers文件夾下的application_helper.rb文件,添加下面的方法:

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 

然後調用它在show.html.erb

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

請點擊「發佈您的答案」之前查看您的答案是如何呈現的。爲了解決格式問題,我不得不在文本和其後面的代碼塊之間插入一個換行符。如果您已通過移動應用發送,則還有預覽。 –