2011-12-28 11 views
6

Я получаю эту ошибку, когда использую omniauth, разрабатываю с помощью рельсов 3.1.3. Я установил драгоценный камень omniauth & omniauth facebook.Нет совпадений в маршруте [GET] "/ auth/facebook"

настроивший routes.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"** 

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

ответ

8

У меня была такая же проблема при использовании 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 
+2

Без этого изменения я заметил, что добавление/пользователей до/auth (например,/users/auth/facebook) работает. Используя те же самые версии gem, была такая же проблема. – TuteC

+0

Devise не позволяет изменять глобальное значение config.path_prefix, но в каждом провайдере можно установить ': path_prefix => '/ auth''. – link0ff

1

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

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

3

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

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

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

0

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

0

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

Смежные вопросы