ruby-on-rails – 设计:同时覆盖设计路线和控制器

我想同时从这个宝石中提取我的设计路线和会话控制器.我该怎么做呢 ?

我想过:

 devise_for :admins, :skip => [:sessions], 
  controllers: { sessions: "admins/sessions" }

  devise_scope :admin do
    get    'login' => 'devise/sessions#new', :as => :new_admin_session
    post   'login' => 'devise/sessions#create', :as => :admin_session
    delete 'logout' => 'devise/sessions#destroy', :as => :destroy_admin_session
  end

但我的路径正在徘徊,但控制器 – 而不是.我该如何实现这一权利?

最佳答案 当您指定控制器:{sessions:“admins / sessions”}时,这意味着您在此路径中有一个名为sessions_controller.rb的文件:app / controllers / admins / sessions_controller.rb,它以以下内容开头:

module Admins
  class SessionsController < Devise::SessionsController

如果这是您希望应用程序使用的控制器,那么在devise_scope块中,您必须告诉它使用管理员/会话,而不是设计/会话,如下所示:

devise_scope :admin do
  get    'login' => 'admins/sessions#new', :as => :new_admin_session
  post   'login' => 'admins/sessions#create', :as => :admin_session
  delete 'logout' => 'admins/sessions#destroy', :as => :destroy_admin_session
end
点赞