错误的参数类型 Class(预期模块)Rails 5 拆分路由

wrong argument type Class (expected Module) Rails 5 splitting up routes

如标题所示,我正在拆分我的路线文件,我有 7 个拆分文件,前 6 个工作和路线已扩展到这些文件,但是,由于某种原因,其中一个文件没有工作。

这就是我的

routes.rb

Rails.application.routes.draw do
  ..
  extend Crm # works
  extend Customers # works
  extend Suppliers # works
  extend Employees # works
  extend Bank # doesn't work
  extend Accounts # works
  extend Admin # works
  ..
end

我在 config/routes/bank.rb 文件中有以下内容

module Bank
  def self.extended(router)
    router.instance_exec do
      # bank routes
      resources :bank_accounts, except: %i[destory] do
        member do
          get :import_transactions
          get :reconcile
          post :process_reconcile
        end

        collection do
          get :list
          post :import_transactions_confirm
          post :process_import_transactions_confirm
          get :transfer
          post :process_transfer
          get :revalue_currency_bank_account
          post :process_revalue_currency_bank_account
        end
      end
    end
  end
end

这与所有其他文件的布局相同,所以我不确定为什么这个文件会导致错误。 我得到的错误是

wrong argument type Class (expected Module)

Bank 只能定义一次,即 classmodule。您可能已经在应用程序的其他地方有一个 Bank class。如果您暂时删除 extend Bank 行,请进入 Rails 控制台,然后检查:

Bank.class

如果 returns Class 那么这意味着您的应用程序已经将 Bank 定义为 class。您需要为路由选择不同的模块名称,例如 Banks:

module Banks
  def self.extended(router)
    ...