omniauth + devise "user / auth / facebook" вопрос магического маршрута - PullRequest
2 голосов
/ 09 сентября 2011

В приложении rails 3 у меня определены следующие маршруты:

    devise_for :users, :controllers => {:omniauth_callbacks => "users/omniauth_callbacks", :registrations => 'registrations'}, :path_names => { :sign_in => 'login', :sign_out => 'logout' } do
      get 'login' =>'devise/sessions#new', :as => :new_user_session
      post 'login' => 'devise/sessions#create', :as => :user_session
      get 'signup'  => 'registrations#new', :as => :new_user_registration
      get 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
    end

    # catchall route to deal with routing errors
    match "*path" => "error#index"

Однако теперь, когда я захожу в log / user / auth / facebook, он перенаправляет меня на страницу ошибок ...

Моим решением было добавить ограничения к финальному совпадению:

    match "*path" => "error#index", :constraints => lambda {|req| !req.path.starts_with?("/users/auth/") }

Это работает, но мне интересно, есть ли лучший способ ...?

1 Ответ

0 голосов
/ 09 сентября 2011

Я думаю, вам лучше позволить странице 404 обрабатывать ошибки маршрутизации.Вы получаете только 500 ошибок в разработке.Это 404 в производстве.Например, на моем сайте: http://agmprojects.com/test. Поэтому я предлагаю использовать 404.html в общей папке вместо загрузки этого контроллера.Из любопытства, вы отвечаете кодом http 404?

...