Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Omniauth/Deviate/Facebook:无法识别身份验证路由_Ruby On Rails_Ruby On Rails 3_Oauth_Devise_Omniauth - Fatal编程技术网

Ruby on rails Omniauth/Deviate/Facebook:无法识别身份验证路由

Ruby on rails Omniauth/Deviate/Facebook:无法识别身份验证路由,ruby-on-rails,ruby-on-rails-3,oauth,devise,omniauth,Ruby On Rails,Ruby On Rails 3,Oauth,Devise,Omniauth,我已经研究这个问题7个小时了,但我仍然不知道。也许你们中的一个能帮我 我只是尝试将Deviate 1.2rc的OAuth特性(使用Omniauth)集成到我的Rails应用程序中 我一直在使用Desive的本教程: 我已经做了他们让你做的一切 是的,我在designe.rb中添加了以下行: config.omniauth:facebook,“应用程序ID”、“应用程序机密” 我已经在我的用户模型中添加了:omniauthable,以及教程中描述的类函数 我已经实现了omniauth\

我已经研究这个问题7个小时了,但我仍然不知道。也许你们中的一个能帮我

我只是尝试将Deviate 1.2rc的OAuth特性(使用Omniauth)集成到我的Rails应用程序中

  • 我一直在使用Desive的本教程:

  • 我已经做了他们让你做的一切

  • 是的,我在designe.rb中添加了以下行:

config.omniauth:facebook,“应用程序ID”、“应用程序机密”

  • 我已经在我的用户模型中添加了:omniauthable,以及教程中描述的类函数

  • 我已经实现了omniauth\u回调控制器以及回调函数,并且在my routes.rb中指定了omniauth\u回调控制器

  • 当我运行“rake中间件”时,它确实列出了Omniauth中间件:

使用OmniAuth::Strategies::Facebook

  • 我已经直接从Git回购主分支安装了Desive,所以它是最新的

  • 我已经安装了Omniauth 1.2.0.beta5,这是最新版本。我的档案上写着:

gem'oaoauth',0.2.0.beta5',:require=>omniauth/oauth'

  • 显然,我已经重新启动了服务器

  • 但是,当我尝试请求此URL时:

http://localhost:3000/auth/facebook

它只是说

ActionController::RoutingError(没有与之匹配的路由“/auth/facebook”):

/user/auth/facebook也不起作用


不幸的是,我没有时间分解整个Omniauth,设计gems并理解其中的每一行代码,也许你们中的一位可以告诉我问题可能是什么。

问题现在解决了。很明显,这是Desive的问题。我把它作为一个问题发布在他们的Github上,他们在源代码中修复了它。在最新的Devage master分支中,它现在可以工作了。

在尝试解决这个问题的几个小时后,我意识到我已经在
.gitignore
文件中找到了
config/initializers/omniauth.rb
(真丢脸)


因此,如果尚未尝试/users/auth/facebook,请从.gitignore列表中删除omniauth.rb。是的,也不起作用。甚至不存在任何路由使用omniauthable模块时没有
config/initializers/omniauth.rb
。我使用它来保存api密钥,但肯定不是必需的