0

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

我有自己的登录和注销流程。但是当我尝试验证 twitter 登录时,我有

AuthenticationsController#create 中的 NoMethodError

undefined method `authentications' for nil:NilClass

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

我的路线是:

match '/auth/:provider/callback', to: 'authentications#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

我不知道是什么问题:/

如果你能帮助我,那就太好了。

谢谢。

4

1 回答 1

0

我已经弄清楚了问题所在。由于我没有登录到系统,current_user 为空,因此它给出了一个错误。

+

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

于 2012-11-08T19:36:34.740 回答