5

使用 Rails 和控制器继承。

我创建了一个名为 的控制器,其中放置了一个名为AdminController的子类admin_user_controller/app/controllers/admin/admin_user_controller.rb

这是我的路线.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
4

3 回答 3

8

如果您使用不同的超类定义了两次相同的类,则会出现此错误。也许尝试class AdminUserController在你的代码中进行 grepping,这样你就确定你没有定义它两次。可能与 Rails 生成的文件存在冲突。

于 2013-03-11T18:51:51.610 回答
6

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

module Admin
  class AdminUserController < AdminController
    def index
      @users = User.all
    end
  end
end
于 2013-12-20T18:34:44.240 回答
0

我通过创建一个“仪表板”控制器和一个“索引”定义来修复它。然后我编辑了我的 routes.rb :

Rails.application.routes.draw do



namespace :admin do
    get '', to: 'dashboard#index', as: '/'

    resources :posts
end



end
于 2017-03-21T04:07:04.670 回答