Я следовал этому руководству , чтобы заставить работать Devise Facebook-аутентификацию, и теперь я пришел к тому, что не могу понять, и мне нужна помощь.
Я получаю ссылку Войти через Facebook, но, нажав на нее, я получаю следующую ошибку, сообщающую, что что-то не так с маршрутами
Неизвестное действие
Не удалось найти отображение устройства для пути"/ пользователей / аутентификации / facebook".Может быть, вы забыли обернуть свой маршрут в блоке объема?Например: devise_scope: user действительно соответствует "/ some / route" => "some_devise_controller" end
Вот мой файл маршрутов
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, но когда возвращаюсь с "Разрешить экран приложения", выдает рубин ...
неопределенный метод `closed? 'для nil: NilClass
activesupport (3.1.0.rc8) lib / active_support / whiny_nil.rb: 48: в method_missing'
/opt/local/lib/ruby/1.8/net/http.rb:1060:in
запрос 'Фарадей (0.6.1) lib / faraday / adapter / net_http.rb:51: in call'
faraday (0.6.1) lib/faraday/request/url_encoded.rb:14:in
call 'faraday (0.6.1) lib / faraday / request.rb: 88: in run'
faraday (0.6.1) lib/faraday/request.rb:28:in
run' faraday (0.6.1) lib / faraday / connection.rb: 170: in run_request'
oauth2 (0.4.1) lib/oauth2/client.rb:63:in
request '
...
Это использует Rails 3.1.0rc8 и ruby 1.9.2