2013-03-11 13 views
5

Spielen mit Rails und Controller Vererbung.Schienen - Superklasse nicht übereinstimmend

ich angelegt habe einen Controller AdminController, mit einem Kind Klasse namens admin_user_controller in /app/controllers/admin/admin_user_controller.rb platziert genannt

Das ist mein routes.rb

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

app/controllers/admin/admin_user_controller.rb

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

app/controller/admin_controller.rb

class AdminController < ApplicationController 

end 

Ich habe ein Benutzermodell, das ich mit Administratorrechten bearbeiten möchte.

Wenn ich versuche, eine Verbindung herstellen: http://localhost:3000/admin/admin_user/

ich diesen Fehler erhalten:

superclass mismatch for class AdminUserController 

Antwort

6

zu vervollständigen, was @Intrepidd sagte: Sie Ihre Klasse innerhalb eines Moduls wickeln kann, so dass die AdminUserController Klasse von ApplicationController nicht zweimal erben, so dass eine einfache Abhilfe wäre:

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

Dieser Fehler erscheint, wenn Sie mit unterschiedlichen Super zweimal die gleiche Klasse definieren. Versuchen Sie vielleicht, in Ihrem Code class AdminUserController zu gräten, damit Sie sicher sind, dass Sie es nicht zweimal definieren. Möglicherweise besteht ein Konflikt mit einer von Rails generierten Datei.

0

ich es behoben durch Erstellen eines "Dashboard" Controllers und eines "Index" def. Ich habe dann meine routes.rb so bearbeitet:

Rails.application.routes.draw do 



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

    resources :posts 
end 



end 
Verwandte Themen