Rails 3, OmniAuth и пассажирские броски RoutingError - PullRequest
3 голосов
/ 24 октября 2010

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

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

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

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

Сервер работает под управлением Apache 2.2, ruby ​​1.8.7, rails 3.0.1, rack 1.2 и passenger 3.0.0. Есть ли что-то очевидное, что мне не хватает?

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

1 Ответ

5 голосов
/ 26 октября 2010

Сам выяснил:

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

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

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

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