gpt4 book ai didi

ruby-on-rails - 设计 : overriding the devise routes and controllers at the same time

转载 作者:行者123 更新时间:2023-12-01 03:35:55 24 4
gpt4 key购买 nike

我想同时从这个 gem 中覆盖我的设计路线和 session Controller 。我该怎么做呢 ?

我想过:

 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

但我的路径正在改变,但 Controller - 不是。我怎样才能实现这个权利?

最佳答案

当您指定 controllers: { sessions: "admins/sessions" } 时,这意味着您有一个名为 sessions_controller.rb 的文件在此路径中:app/controllers/admins/sessions_controller.rb ,并且它以:

module Admins
class SessionsController < Devise::SessionsController

如果这是您希望应用程序使用的 Controller ,则在 devise_scope 中阻止,你必须告诉它使用 admins/sessions ,不是 devise/sessions , 像这样:
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

关于ruby-on-rails - 设计 : overriding the devise routes and controllers at the same time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34888098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com