2009-04-21 12 views
5

मैंने निम्नलिखित पर ध्यान दिया है, लेकिन वे स्पष्ट नहीं हैं, विशेष रूप से डेटामैपर और मणि निर्भरताओं का संदर्भ।मैं रेल पर रूबी में ग्रेवटर/पहचान कैसे जोड़ूं?

मैं चाहता हूं कि परिणाम मेरे @ user.email मान को लेने में सक्षम हो, जो एक | do | लूप और एक गुरुत्वाकर्षण प्रदर्शित करें जहां पहचान "वाई" पर सेट है - दूसरे शब्दों में, उन सुंदर प्रतीत होता है यादृच्छिक चित्र!

लेकिन जब मैं देखता हूं कि क्या उपलब्ध है, तो यह स्पष्ट नहीं है कि क्या करना है - विशेष रूप से डेटामैपर और मणि निर्भरताओं के संदर्भ।

http://github.com/chrislloyd/gravtastic/tree/master

मैं इस के साथ चारों ओर खेल रहा हूँ, लेकिन मैं डाइविंग बहुत गहरा पहले दूसरों से राय प्राप्त करना चाहता था!

http://www.thechrisoshow.com/2008/10/27/adding-gravatars-to-your-rails-apps

मैं जंगल स्थापित gravatar प्लगइन:

http://github.com/woods/gravatar-plugin/tree/master जो एक ही है के रूप में एक नीचे संदर्भित किया ... फिर भी, मैं एक त्रुटि जब मैं में टाइप मिलती है:

<%= gravatar_for @user %> 

त्रुटि है:

undefined method `gravatar_for' for #<ActionView::Base:0x474ddf4> 
+0

हाय इस प्रकार है, मैं Gravtastic के लेखक हूँ। मैंने पुस्तकालय को अद्यतन किया है और रीडमे को थोड़ा और स्पष्ट बना दिया है। अगर आपको इसका उपयोग करने में मदद की ज़रूरत है तो मुझे पिंग करें। –

उत्तर

1

वहाँ एक Gravatar रेल प्लगइन यहां पाया जा सकता है कि:

http://gravatarplugin.rubyforge.org/

इस तरह प्लग-इन इंस्टॉल:

ruby script/plugin install svn://rubyforge.org//var/svn/gravatarplugin/plugins/gravatar 

प्लगइन स्थापित करने के बाद, अपने मॉडल एक 'ई-मेल का जवाब है, तो 'विधि, यह टैग ग्रेवटर दिखाएगा:

<%= gravatar_for @user %> 
+0

हाय, मैंने इसे स्थापित किया और मुझे एक त्रुटि मिली: # के लिए अपरिभाषित विधि 'gravatar_for' # Angela

+0

क्या ऐसा कुछ है जिसे मैं "सक्षम" करने के लिए करना चाहता हूं? मैंने देखा है कि यह gravatar-plugin नामक एक प्लगइन बनाता है ... क्या मुझे इसका नाम बदलने की ज़रूरत है? मुझे इसे restful_authentication के लिए करना था। – Angela

+2

क्या आपने अपना सर्वर पुनरारंभ किया था? – Terry

1

आपकोकी आवश्यकता हैईमेल पता और फिर इसे एक gravatar यूआरएल में डाल दिया। यह आपको छवि यूआरएल देगा। नीचे एक उदाहरण है कि इसे कैसे करें।

http://www.gravatar.com/avatar/ md5(email) ?s=128&d=identicon&r=PG 

यदि आप उन यादृच्छिक चित्रों को दिखाना चाहते हैं, तो आप उन्हें प्राप्त करने के लिए एमडी 5 हैश का उपयोग कर सकते हैं। आप लूप में मुख्य मान हैश कर सकते हैं और इस तरह एक सूची प्राप्त कर सकते हैं।

+0

जब मैं gravatar प्लगइन का उपयोग करता हूं तो मैं डी = पहचान को कैसे जोड़ूं? – Angela

+0

एक ही प्रश्न .. – SuperString

8

बहुत अधिक दोहराने के लिए नहीं, बल्कि इसके बजाय अधिक विस्तृत उत्तर देने के लिए:

जैसा कि सैम 152 ने कहा था, आपको उपयोगकर्ता के ईमेल पते से MD5 हैश बनाना होगा जिसका उपयोग gravatar सर्वर को GET अनुरोध में किया जाता है।

एमडी 5 हैश तक पहुंच हासिल करने का सबसे आसान तरीका एक्शनपैक (एक्शन व्यू के अंदर) मणि का हिस्सा डाइजेस्ट के माध्यम से है। 'Config/environment.rb' में निम्नलिखित रखें:

image_tag("http://www.gravatar.com/avatar.php?gravatar_id=#{Digest::MD5::hexdigest(@user.email)}", :alt => 'Avatar', :class => 'avatar') 

यह कोई अतिरिक्त जवाहरात और आप की आवश्यकता है:

require 'digest' 

अब आप केवल जहां उपयोगकर्ता के gravatar प्रदर्शित करना चाहते हैं निम्नलिखित उपयोग करने की आवश्यकता यदि आवश्यक हो तो उपयोगकर्ता की गुरुत्वाकर्षण में खींचने के लिए आवश्यकतानुसार एक सहायक बना सकते हैं।

13

इस कोड को अपने एप्लिकेशनहेल्पर में रखें ताकि gravatar_for सभी विचारों में उपलब्ध हो।

def gravatar_for email, options = {} 
    options = {:alt => 'avatar', :class => 'avatar', :size => 80}.merge! options 
    id = Digest::MD5::hexdigest email.strip.downcase 
    url = 'http://www.gravatar.com/avatar/' + id + '.jpg?s=' + options[:size].to_s 
    options.delete :size 
    image_tag url, options 
end 

दृश्यों में:

<%= gravatar_for '[email protected]' %> 
<%= gravatar_for '[email protected]', :size => 48 %> 
<%= gravatar_for '[email protected]', :size => 32, :class => 'img-class', :alt => 'me' %> 

मैं तिरछा के समाधान को परिष्कृत किया। Gravatar guidelines के बाद, ई-मेल को छंटनी से पहले छिड़काव और कम किया जाना चाहिए। इसके अलावा, ऐसा लगता है कि require 'digest' की आवश्यकता नहीं है (रेल 3 पर परीक्षण किया गया)।

+0

मैं कैसे सेट करूं गुरुत्वाकर्षण के प्रकार के प्रकार (जैसे राक्षस)? – Angela

+1

URL पर '& d = DEFAULT_ICON_NAME' संलग्न करें। जब मैं काम पर वापस आऊंगा तो मैं सोमवार को अपना कोड संशोधित करूंगा। आइकन नामों के लिए http://gravatar.com/site/implement/images/ – Nowaker

+0

हत्यारा देखें! धन्यवाद! – Techism

1

मैं https://github.com/sinisterchipmunk/gravatar का उपयोग करता हूं, यह अच्छी तरह से काम करता है, मैं केवल मूल बातें का उपयोग कर रहा हूं लेकिन यह नकद और उन्नत विकल्प कर सकता है।

यह भी उपयोग करने के लिए आसान है:

Gravatar.new(email).image_url 

identicons के लिए आप wavatar जोड़ सकता है के रूप में

Gravatar.new(email).image_url + '?d=wavatar' 
संबंधित मुद्दे