Rails 3, OmniAuth и пассажир выдают RoutingError

Я пытаюсь создать новое приложение для рельсов 3 с нуля, используя OmniAuth. В настоящее время у меня просто есть совершенно пустое приложение, где я добавил omniauth в Gemfile и добавил omniauth.rb в config/initializers, который выглядит так:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'APP_ID', 'APP_SECRET'
end

(За исключением правильного идентификатора приложения и секрета вместо заполнителей, конечно.)

Кажется, это работает при запуске с моей машины разработки с помощью Webrick, однако facebook выдает ошибку, поскольку localhost: 3000 не зарегистрирован как приложение. Поэтому я загружаю его на рабочий сервер для тестирования. Здесь запрос, кажется, полностью обходит уровень стойки и заканчивается в rails, который выдает RoutingError, поскольку в route.rb не указан маршрут с именем /auth/facebook.

На сервере работают apache 2.2, ruby ​​1.8.7, rails 3.0.1, стоечный 1.2 и пассажирский 3.0.0. Есть ли что-то очевидное, что я упускаю?

Кстати, приложение установлено на дополнительный URL-адрес, например http://www.mydomain.net/myapp


person harald    schedule 24.10.2010    source источник


Ответы (1)


Сам обнаружил:

Изменил код на:

Rails.application.config.middleware.use OmniAuth::Builder do
  configure do |config|
    config.path_prefix = '/myapp/auth' if RAILS_ENV == 'production'
  end

  provider :facebook, 'APP_ID', 'APP_SECRET'
end

Теперь это работает как шарм.

person harald    schedule 26.10.2010