自定义会话控制器使用rails中的设计

时间:2018-01-17 07:51:10

标签: ruby-on-rails devise

我有一个用户模型,其中包含管理员和经理角色列(使用设计),需要为管理员和经理提供不同的登录页面

devise_for :users, controllers: {
    sessions: 'users/sessions'
  }

as :user do
    namespace :admins do
      get 'sign_in', to: 'sessions#new'
      post 'sign_in', to: 'sessions#create'
    end
  end

对于admin角色,它可以访问Admins :: SessionsController控制器,对于管理员,它必须访问Users :: SessionsController,如何在不使用devise_for的情况下在路由中指定?

1 个答案:

答案 0 :(得分:0)

您需要为用户和管理员提供不同的范围。

devise_for :users, skip: :all
devise_scope :user do
  # custom routes here
end
devise_scope :admin do
  # custom routes here
end

请注意,devise_for的资源是复数,devise_scope的资源是单数。