2013-06-25 30 views
5

Tôi đang làm việc với Omniauth Facebook Gem with Rails và cần chọn tiểu sử trên ứng dụng của tôi cho từng người dùng.Cách đơn giản nhất để thêm ảnh tiểu sử bằng Đá quý Omniauth-Facebook là gì?

Đơn giản như truy xuất Tên người dùng từ facebook bằng Gem, hay cần phải tải lên máy chủ Amazon S3, v.v ...?

mô hình người dùng của tôi:

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 

Không thể tìm thấy một câu trả lời rõ ràng.

Cập nhật: Trong trang chương trình của tôi nó chỉ cho thấy url:

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

Cảm ơn

Trả lời

3

Nó là đơn giản để làm. Và bạn không cần lưu trữ hình ảnh trên máy chủ của mình. Bạn chỉ có thể lấy nó từ facebook.

Sau đây là cách tôi làm điều đó:
Thêm một trường image trong mô hình User của bạn:

rails generate migration addImageToUsers image:string 

Thêm nó danh sách attr_accessible.

Sau đó, trong phương pháp trên của bạn, thêm danh sách sau cho hình ảnh:

user.image = auth.info.image 

Đây là url trực tiếp về nơi facebook lưu trữ các hình ảnh của người dùng.

Bạn có thể inspect mã băm auth để nghiên cứu kích thước hình ảnh người dùng khác nhau.

+0

Tôi chỉ tìm ra được nhờ. Đã làm chính xác điều đó! Yey. Ngoại trừ trang hiển thị của tôi chỉ hiển thị URL chứ không phải hình ảnh. Tôi đã thêm mã ở trên. –

+1

Ok đã nhận nó <% = link_to image_tag @ user.image%>;) –

Các vấn đề liên quan