我正在将我的大部分应用程序迁移到admin命名空间,虽然有很多与此相关的指南,但我仍然无法管理。我一直主要关注this answer,以及谷歌提出的任何结果(他们都倾向于同意)。有人可以告诉我我做错了什么,所以我不再失眠了吗?
以下是错误消息:
错误的参数类型Module(期望的类)
app/controllers/application_controller.rb:1:in `<top (required)>'
app/controllers/admin/admin_controller.rb:1:in `<top (required)>'
app/controllers/admin/home_controller.rb:1:in `<top (required)>'
的routes.rb
namespace :admin do
root :to => "home#index"
resources :users
end
系统管理员/ admin_controller.rb
class Admin::AdminController < ApplicationController
系统管理员/ home_controller.rb
class Admin::HomeController < Admin::AdminController
系统管理员/ users_controller.rb
class Admin::UsersController < Admin::AdminController
我很确定这与模块和控制器交互有关,所以我没有包含任何其他代码。但是,我现在应该找到解决方案,如果需要任何其他代码,请告诉我。
感谢。
答案 0 :(得分:6)
我遇到了反向问题“错误的参数类型类(预期的模块)”,结果发现有一个帮助器定义为类而不是模块,因此请尝试搜索无意中定义为模块的类。就像定义为模块的控制器一样。
答案 1 :(得分:3)
我建议您将Admin::AdminController
重命名为Admin::BaseController
。
答案 2 :(得分:0)
也许你有定义为Admin
常量的东西?
尝试使用相同结构的新应用程序,然后添加当前的应用程序并查看其中断的位置(不是很好的建议,是吗?)。
我使用与您粘贴的管理员相同的组织...
答案 3 :(得分:0)
“错误的参数类型模块(期望的类)”
这意味着您正在定义“类”,但该名称已在其他位置定义为“模块”。搜索可能是什么......
答案 4 :(得分:0)
你可以按照下面的代码,你的控制器很好,你可以使用我在这里指定的路线。
class Admin::AdminController < ApplicationController
class Admin::UsersController < Admin::AdminController
这与你所写的相同,我想是的。
namespace :admin do
resources :users do as_routes end
end
root :to => "home#index"
答案 5 :(得分:0)
@Russell,我在创建模型AdminHelper(意图包含管理员帮助消息)时遇到了这个问题:)
小心命名!
答案 6 :(得分:0)
当我使用带有无效参数的paperclip的has_attached_file时遇到了这样的问题。