错误的参数类型类(预期的模块)Rails 5 拆分路线
Posted
技术标签:
【中文标题】错误的参数类型类(预期的模块)Rails 5 拆分路线【英文标题】:wrong argument type Class (expected Module) Rails 5 splitting up routes 【发布时间】:2021-07-19 17:01:12 【问题描述】:正如标题所暗示的,我正在拆分我的路由文件,我有 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)
【问题讨论】:
【参考方案1】:Bank
只能定义一次,可以是class
或module
。你可能已经在你的应用程序的其他地方有一个Bank
类。如果您暂时删除 extend Bank
行,请进入 Rails 控制台并检查:
Bank.class
如果返回Class
,则意味着您的应用已经将Bank
定义为一个类。你需要为你的路由选择一个不同的模块名称,比如Banks
:
module Banks
def self.extended(router)
...
【讨论】:
知道了,是的,它返回了课程,感谢您的快速回复。以上是关于错误的参数类型类(预期的模块)Rails 5 拆分路线的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails 参数数量错误(给定 0 预期 1)
Rails 2.4 => 3.0:ActiveRecord:`add_modifier`:参数数量错误(给定 3,预期 2)(ArgumentError)
Java JPA 错误;您试图从查询字符串中设置类型类数据预期类型 int 的值