我有这样的路线:
devise_for :admins, path: 'admin', controllers: {sessions: 'admin/sessions'}
devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }
devise_scope :user do
get 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session
end
因此可以使用omniauth
注册用户,但我想启用通过电子邮件和密码注册。所以我添加了这样的用户会话:
devise_for :users, controllers: { sessions: 'users/sessions', omniauth_callbacks: 'users/omniauth_callbacks' }
但路线保持不变。
new_admin_session GET /admin/sign_in(.:format) admin/sessions#new
admin_session POST /admin/sign_in(.:format) admin/sessions#create
destroy_admin_session DELETE /admin/sign_out(.:format) admin/sessions#destroy
user_omniauth_authorize GET|POST /users/auth/:provider(.:format) users/omniauth_callbacks#passthru {:provider=>/facebook/}
user_omniauth_callback GET|POST /users/auth/:action/callback(.:format) users/omniauth_callbacks#:action
destroy_user_session GET /sign_out(.:format) devise/sessions#destroy
即使devise_for :users, controllers: { sessions: 'users/sessions'}
制作路线user_omniauth_authorize
和user_omniauth_callback
。
如果我删除了行devise_for :users
,路线也会消失。
我做错了什么?我很感激任何建议。