Ruby on rails 设计及;Rails 3.1中的omniauth Facebook身份验证
我一直在努力让Desive Facebook认证工作,现在我已经到了一个无法理解的地步,我想得到一些帮助 我通过Facebook链接登录,但点击它,我会出现以下错误,告诉我路线有问题 未知行为 找不到路径“/users/auth/facebook”的设计映射。也许你忘了把你的路线包在范围块里?例如:设计范围:用户确实匹配“/some/route”=>“some\u设计控制器”结束 这是我的文件Ruby on rails 设计及;Rails 3.1中的omniauth Facebook身份验证,ruby-on-rails,ruby-on-rails-3,devise,omniauth,Ruby On Rails,Ruby On Rails 3,Devise,Omniauth,我一直在努力让Desive Facebook认证工作,现在我已经到了一个无法理解的地步,我想得到一些帮助 我通过Facebook链接登录,但点击它,我会出现以下错误,告诉我路线有问题 未知行为 找不到路径“/users/auth/facebook”的设计映射。也许你忘了把你的路线包在范围块里?例如:设计范围:用户确实匹配“/some/route”=>“some\u设计控制器”结束 这是我的文件 devise_for :users, :controllers => { :omniauth
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
root :to => 'home#index'
编辑:
通过将路线更改为,解决了该问题
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
root :to => 'home#index'
现在我遇到了下一个让Facebook身份验证工作的错误,但是当从“允许应用程序屏幕”返回时,ruby抛出了
nil:NilClass的未定义方法“closed”
activesupport(3.1.0.rc8)lib/active\u support/whiny\u nil.rb:48:inmethod\u missing'
/opt/local/lib/ruby/1.8/net/http.rb:1060:in
request'
法拉第(0.6.1)lib/faraday/adapter/net_http.rb:51:incall'
法拉第(0.6.1)lib/faraday/request/url_encoded.rb:14:in
call'
法拉第(0.6.1)lib/faraday/request.rb:88:inrun'
法拉第(0.6.1)lib/faraday/request.rb:28:in
run'
法拉第(0.6.1)lib/faraday/connection.rb:170:inrun_请求'
oauth2(0.4.1)lib/oauth2/client.rb:63:in
request'
这使用的是Rails 3.1.0rc8和ruby 1.9.2,我昨天刚刚完成了我的应用程序omniauth登录,使用的是完全相同的指南和Rails 3.1 final 我不确定你走了你的路线好的,我的看起来是这样的:
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
get 'sign_in', :to => 'users/sessions#new', :as => :new_user_session
get 'sign_out', :to => 'users/sessions#destroy', :as => :destroy_user_session
end
devise_scope :user do
get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
在我的design\u for:users
块中,我进行了登录和注销,因为我使用的是OmniAuth,没有其他身份验证
该指南还指出,get'/users/auth/:provider'
行应该位于design\u范围:user
我不确定这是否能解决您的问题,但至少我想指出这些观点,这些观点不适合发表评论我想您可以回答我的问题。我在omniauth也有类似的问题