错误的参数类型 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
只能定义一次,即 class
或 module
。您可能已经在应用程序的其他地方有一个 Bank
class。如果您暂时删除 extend Bank
行,请进入 Rails 控制台,然后检查:
Bank.class
如果 returns Class
那么这意味着您的应用程序已经将 Bank
定义为 class。您需要为路由选择不同的模块名称,例如 Banks
:
module Banks
def self.extended(router)
...
如标题所示,我正在拆分我的路线文件,我有 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
只能定义一次,即 class
或 module
。您可能已经在应用程序的其他地方有一个 Bank
class。如果您暂时删除 extend Bank
行,请进入 Rails 控制台,然后检查:
Bank.class
如果 returns Class
那么这意味着您的应用程序已经将 Bank
定义为 class。您需要为路由选择不同的模块名称,例如 Banks
:
module Banks
def self.extended(router)
...