Ruby on rails 如何为使用发动机的两种型号设置设备

Ruby on rails 如何为使用发动机的两种型号设置设备,ruby-on-rails,devise,rails-engines,Ruby On Rails,Devise,Rails Engines,我在正确设置发动机方面遇到了一些问题 在我的引擎中我有: config/initializers/designe.rb config.router_name = :portal_core devise_for :users, class_name: 'PortalCore::User', module: :devise module PortalCore class User < ApplicationRecord ... devise :database_auth

我在正确设置发动机方面遇到了一些问题

在我的引擎中我有:

config/initializers/designe.rb

config.router_name = :portal_core
devise_for :users, class_name: 'PortalCore::User', module: :devise
module PortalCore
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable, :confirmable,
         :recoverable, :rememberable, :validatable, :lockable
  end
end
devise_for :admin_users, class_name: 'AdminUser'
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable,
     :recoverable, :rememberable, :validatable
  end
config/routes.rb

config.router_name = :portal_core
devise_for :users, class_name: 'PortalCore::User', module: :devise
module PortalCore
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable, :confirmable,
         :recoverable, :rememberable, :validatable, :lockable
  end
end
devise_for :admin_users, class_name: 'AdminUser'
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable,
     :recoverable, :rememberable, :validatable
  end
app/models/portal\u core/user.rb

config.router_name = :portal_core
devise_for :users, class_name: 'PortalCore::User', module: :devise
module PortalCore
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable, :confirmable,
         :recoverable, :rememberable, :validatable, :lockable
  end
end
devise_for :admin_users, class_name: 'AdminUser'
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable,
     :recoverable, :rememberable, :validatable
  end
app/models/admin\u user.rb

config.router_name = :portal_core
devise_for :users, class_name: 'PortalCore::User', module: :devise
module PortalCore
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable, :confirmable,
         :recoverable, :rememberable, :validatable, :lockable
  end
end
devise_for :admin_users, class_name: 'AdminUser'
  class User < ApplicationRecord
    ...
    devise :database_authenticatable, :trackable,
     :recoverable, :rememberable, :validatable
  end
我得到了这个错误:NoMethodError: 用于#设计::FailureApp:0x0000000008c9f1f0>的未定义方法“门户核心”

如果我在主机应用程序中装载引擎路由:

context "When not logged in" do
  it "redirect to new user session when try to access index" do
    process :index, method: :get, params:{}
    expect(response).to redirect_to(new_admin_user_session_path)
  end
end
mount PortalCore::Engine => '/portal_core'
然后我得到了这个错误:预期的响应是重定向到,但实际上是重定向到。

如果我尝试启动服务器,它会继续使用401命令重定向


可能缺少一些配置,但我不知道是什么。

因此,我不知道这是解决方案还是解决方案

在主机应用程序designe初始化器中,我将路由器名称设置为nil:
config.router\u name=nil
它成功了

欢迎任何其他解决方案

谢谢