2013-03-11 44 views
5

使用Rails和控制器繼承。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 

app/controllers/admin_controller.rb

class AdminController < ApplicationController 

end 

我有一個用戶模型,我想用管理員權限編輯。

當我嘗試連接到:如果你定義了兩個時期有不同的超同班

superclass mismatch for class AdminUserController 

回答

6

要完成什麼@Intrepidd說,你可以用你的類模塊內,使AdminUserController類不從ApplicationController兩次繼承,所以一個簡單的解決方法是:

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

此錯誤顯示出來:http://localhost:3000/admin/admin_user/

我收到此錯誤。也許在你的代碼中嘗試grey class AdminUserController,所以你確定你沒有定義它兩次。有可能與Rails生成的文件有衝突。

0

我固定它通過創建一個「Dashboard」控制器和一個「index」def。然後我編輯我的routes.rb:

Rails.application.routes.draw do 



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

    resources :posts 
end 



end