Не найдено ни одного маршрута [GET] "/ auth / facebook" - PullRequest
6 голосов
/ 28 декабря 2011

Я получаю эту ошибку, когда использую omniauth, разработайте с помощью rails 3.1.3. Я установил omniauth gem & omniauth facebook.

Настроил route.rb как match '/auth/:provider/callback',to: 'authentications#create' в качестве руководства https://github.com/intridea/omniauth

Всякий раз, когда я просматриваю URL http://localhost:3003/auth/facebook/,, я нахожу ошибку маршрутизации

**No route matches [GET] "/auth/facebook"**

Пожалуйста, помогите в этом. У меня есть соответствующий пост в stackoverflow, и, кажется, ни один не работает

Ответы [ 5 ]

7 голосов
/ 03 февраля 2012

У меня была такая же проблема при использовании Rails 3.2, OmniAuth 1.0.2 и Devise 2.0.

Очевидно, есть проблема с 'path_prefix'.Но при ручной перенастройке все работает.

Попробуйте сделать это в инициализаторе:

Rails.application.config.middleware.use OmniAuth::Builder do
  configure do |config|
    config.path_prefix = '/auth'
  end
  ...
end
3 голосов
/ 28 мая 2012

У меня была такая же проблема, и я обнаружил, что она была вызвана модулем: omniauthable devise.Вам необходимо закомментировать модуль, например:

#app/model/user.rb
def User
    ...
    devise :database_authenticatable, :registerable, :confirmable,
           :recoverable, :rememberable, :trackable, :validatable#, :omniauthable
    ...
end

Извините за поздний ответ.

1 голос
/ 21 февраля 2012

Через несколько часов, пытаясь решить эту проблему, я понял, что я config/initializers/omniauth.rb в файле .gitignore (позор мне).

, поэтому удалите omniauth.rb из списка .gitignore, если вы еще не сделали

0 голосов
/ 11 сентября 2013

Эта проблема возникла из-за конфликта хостов, мы должны убедиться, что мы меняем facebook «Веб-сайт с Facebook Login» -> URL сайта: «» в соответствии с производственной и локальной разработкой.enter image description here

0 голосов
/ 21 августа 2012

Это наиболее вероятно, потому что вы настроили devise.rb для использования scoped_views. Поведение Devise по умолчанию заключается в том, чтобы охватить URL-адреса вашей модели. Лучший способ обойти это - использовать собственные контроллеры, наследуя их от Devise и сообщая Devise, какие контроллеры и URL использовать. Обратитесь к Придумайте вики-страницы для более подробного объяснения того, как добиться такого поведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...