2013-10-10 76 views
0

此时用户可以使用他们的脸谱帐户使用omniauth-facebook gem登录我的网站。我还想实现一种方式让用户使用像设计师这样的宝石创建一个帐户,以便在发布时可以保持更多的匿名。让用户使用Facebook登录或创建帐户

下面是我在我的sessions_controller

class SessionsController < ApplicationController 
    def create 
    user = User.from_omniauth(env["omniauth.auth"]) 
    session[:user_id] = user.id 
    redirect_to root_url 
    end 

    def destroy 
    session[:user_id] = nil 
    redirect_to root_url 
    end 
end 

然后我的用户模型

class User < ActiveRecord::Base 
include SessionsHelper 

    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 
    end 

    has_many :stories 
end 

这事我可以通过在色器件宝石增加只是解决或者我将需要添加一个我的sessions_helper或用户模型中有几件事?

回答

相关问题