使用Rails和控制器继承。
我创建了一个名为AdminController
的控制器,其中一个名为admin_user_controller
的子类位于/app/controllers/admin/admin_user_controller.rb
这是我的routes.rb
namespace :admin do
resources :admin_user # Have the admin manage them here.
end
应用程序/控制器/管理/ admin_user_controller.rb
class AdminUserController < AdminController
def index
@users = User.all
end
end
应用程序/控制器/ admin_controller.rb
class AdminController < ApplicationController
end
我有一个用户模型,我想用管理员权限进行编辑。
当我尝试连接到:http://localhost:3000/admin/admin_user/
我收到此错误:
superclass mismatch for class AdminUserController
答案 0 :(得分:8)
如果您使用不同的超类定义两次相同的类,则会显示此错误。也许在你的代码中尝试grepping class AdminUserController
,这样你就可以确定你没有定义它两次。有可能与Rails生成的文件发生冲突。
答案 1 :(得分:6)
要完成@Intrepidd所说的内容,你可以将你的类包装在一个模块中,这样AdminUserController
类就不会从ApplicationController
继承两次,所以一个简单的解决方法就是:
module Admin
class AdminUserController < AdminController
def index
@users = User.all
end
end
end
答案 2 :(得分:0)
我通过创建一个&#34; Dashboard&#34;来修复它。控制器和&#34;索引&#34; DEF。然后我编辑了我的routes.rb:
Rails.application.routes.draw do
namespace :admin do
get '', to: 'dashboard#index', as: '/'
resources :posts
end
end