【发布时间】:2011-09-09 17:22:42
【问题描述】:
在 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"
但是,现在当我登录 /user/auth/facebook 时,它会将我引导到错误页面...
我对此的解决方案是在最终匹配中添加约束:
match "*path" => "error#index", :constraints => lambda {|req| !req.path.starts_with?("/users/auth/") }
这可行,但我想知道是否有更好的方法...?
【问题讨论】:
标签: ruby-on-rails-3 devise omniauth