2013-06-25 8 views
5

Pracuję z Klejnotem Facebooka Omniauth z Railsami i potrzebuję wyboru profilu dla mojej aplikacji dla każdego użytkownika.Jaki jest najprostszy sposób dodania zdjęcia profilowego za pomocą klejnotu Omniauth-Facebook?

Czy jest to tak proste, jak pobranie nazwy użytkownika z Facebooka z klejnotem, czy też musi być przesłana na serwery Amazon S3 itp.?

Mój model użytkownik:

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 

nie można znaleźć jednoznacznej odpowiedzi.

Aktualizacja: W mojej stronie pokazać to tylko pokazuje URL:

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

Thanks

Odpowiedz

3

To jest proste do zrobienia. I nie wymaga przechowywania obrazu na serwerze. Możesz po prostu pobrać go z Facebooka.

Oto jak to zrobić:
Dodaj pole image w modelu User:

rails generate migration addImageToUsers image:string 

dodać attr_accessible listę.

Następnie w powyższej metody, należy dodać następującą listę do obrazu:

user.image = auth.info.image 

Jest to bezpośredni adres url gdzie facebook przechowuje obraz użytkownika.

Możesz mieszać inspect swój mieszalnik , aby zbadać inny rozmiar obrazu użytkownika.

+0

Właśnie to wymyśliłem dzięki. Właśnie to zrobił! Yey. Poza tym, że moja strona pokazuje tylko adres URL, a nie obraz. Dodałem powyższy kod. –

+1

Ok dostałem to <% = link_do image_tag @ user.image%>;) –

Powiązane problemy