2013-06-25 5 views
5

Sto lavorando con la gemma Facebook Omniauth con Rails e ho bisogno di un profilo sulla mia app per ogni utente.Qual è il modo più semplice per aggiungere un'immagine del profilo con la gemma Omniauth-Facebook?

È semplice come recuperare il Nome dell'utente da Facebook con Gem, o deve essere caricato su server Amazon S3, ecc.?

Il mio modello di utente:

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 

non riesco a trovare una risposta chiara.

Aggiornato: Nella mia pagina spettacolo mostra solo l'url:

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

Grazie

risposta

3

E 'semplice da fare. E non hai bisogno di memorizzare l'immagine sul tuo server. Puoi semplicemente recuperarlo da facebook.

Ecco come lo faccio:
aggiungere un campo image nel modello User:

rails generate migration addImageToUsers image:string 

inserirlo attr_accessible lista.

Poi, nel tuo metodo di cui sopra, aggiungere seguente elenco per un'immagine:

user.image = auth.info.image 

Questo è l'url diretto di cui facebook memorizza l'immagine dell'utente.

È possibile inspect l'hash auth per studiare diverse dimensioni dell'immagine dell'utente.

+0

Ho appena capito grazie. Fatto esattamente questo! Yey. Tranne la mia pagina mostra mostra solo l'URL, non l'immagine. Ho aggiunto il codice sopra. –

+1

Ok capito <% = link_to image_tag @ user.image%>;) –