2013-06-25 8 views
5

मैं रेल के साथ Omniauth फेसबुक जेम के साथ काम कर रहा हूं और प्रत्येक उपयोगकर्ता के लिए मेरे ऐप पर प्रोफ़ाइल लेने की आवश्यकता है।Omniauth-Facebook Gem के साथ प्रोफ़ाइल छवि जोड़ने का सबसे आसान तरीका क्या है?

क्या यह जेम के साथ फेसबुक से उपयोगकर्ता का नाम पुनर्प्राप्त करने के समान आसान है, या इसे अमेज़ॅन एस 3 सर्वर आदि पर अपलोड करने की आवश्यकता है?

मेरे उपयोगकर्ता मॉडल:

def self.from_omniauth(auth) 
    where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user| 
     user.provider = auth.provider 
     user.uid = auth.uid 
     user.name = auth.info.name 
     user.oauth_token = auth.credentials.token 
     user.oauth_expires_at = Time.at(auth.credentials.expires_at) 
     user.save! 
    end 

एक स्पष्ट उत्तर नहीं मिल सका।

अपडेट किया गया:

<b>IMAGE:</b> <%= @user.image %> 

धन्यवाद

उत्तर

3

यह करने के लिए आसान है: मेरी शो पेज में यह केवल यूआरएल को दर्शाता है। और आपको अपने सर्वर पर छवि स्टोर करने की आवश्यकता नहीं है। आप इसे फेसबुक से आसानी से ला सकते हैं।

यहाँ है कैसे मैं यह कर:
अपने User मॉडल में एक image क्षेत्र जोड़ें:

rails generate migration addImageToUsers image:string 

यह attr_accessible सूची में जोड़ें।

फिर अपने उपरोक्त विधि में, छवि के लिए निम्न सूची में जोड़ें:

user.image = auth.info.image 

यह की जहां फेसबुक उपयोगकर्ता की छवि को संग्रहीत करता है प्रत्यक्ष यूआरएल है।

आप inspect अपने auth हैश को उपयोगकर्ता छवि के विभिन्न आकार का अध्ययन करने के लिए कर सकते हैं।

+0

मैंने अभी इसे धन्यवाद दिया। वास्तव में वह था! Yey। मेरे शो पेज को छोड़कर बस यूआरएल दिखाएं, छवि नहीं। मैंने उपरोक्त कोड जोड़ा। –

+1

ठीक है इसे <% = link_to image_tag @ user.image%> मिला;) –

संबंधित मुद्दे