Rails Omniauth - AuthenticationsController中的NoMethodError #create

时间:2012-11-08 19:30:55

标签: ruby-on-rails ruby omniauth

我正在关注教程:http://railscasts.com/episodes/235-omniauth-part-1?autoplay=true

我有自己的登录和退出流程。但是,当我尝试验证Twitter登录时,我有

AuthenticationsController中的NoMethodError #create

undefined method `authentications' for nil:NilClass

app/controllers/authentications_controller.rb:8:in `create'

我的路线是:

match '/auth/:provider/callback', to: 'authentications#create'

在我的身份验证控制器中,create方法是:

def create
    auth =  request.env["omniauth.auth"]
    current_user.authentications.create(:provider => auth[:provider], :uid => auth[:uid])
    flash[:notice] = "Success"
    redirect_to authentications_url
  end

我不知道是什么问题:/

如果你能帮助我,那将是很棒的。

感谢。

1 个答案:

答案 0 :(得分:0)

我已经找到了问题所在。由于我没有登录系统,因此current_user为null,因此它会出错。

+

现在我写了我的所有经验并制作了一个源代码教程,它提供了Facebook和Twitter的多重身份验证: http://www.orhancanceylan.com/rails-twitter-and-facebook-authentications-with-omniauth-and-devise/