Rails-超类不匹配 [英] Rails - superclass mismatch

查看:75
本文介绍了Rails-超类不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

玩Rails和控制器继承.

Playing with Rails and controller inheritance.

我创建了一个名为AdminController的控制器,并在/app/controllers/admin/admin_user_controller.rb

I've created a controller called AdminController, with a child class called admin_user_controller placed in /app/controllers/admin/admin_user_controller.rb

这是我的路线.

  namespace :admin do
    resources :admin_user # Have the admin manage them here.
  end

app/controllers/admin/admin_user_controller.rb

app/controllers/admin/admin_user_controller.rb

class AdminUserController < AdminController
  def index
    @users = User.all
  end
end

app/controllers/admin_controller.rb

app/controllers/admin_controller.rb

class AdminController < ApplicationController

end

我有一个要使用管理员权限进行编辑的用户模型.

I have a user model which I will want to edit with admin privileges.

当我尝试连接到:http://localhost:3000/admin/admin_user/

我收到此错误:

superclass mismatch for class AdminUserController

推荐答案

要完成@Intrepidd所说的内容,您可以将类包装在模块中,以使AdminUserController类不会从ApplicationController继承两次,所以一个简单的解决方法是:

To complete what @Intrepidd said, you can wrap your class inside a module, so that the AdminUserController class doesn't inherit twice from ApplicationController, so a simple workaround would be :

module Admin
  class AdminUserController < AdminController
    def index
      @users = User.all
    end
  end
end

这篇关于Rails-超类不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆