2013-03-11 12 views
5

रेल और नियंत्रक विरासत के साथ बजाना।रेल - सुपरक्लास विसंगति

मैं एक नियंत्रक 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 

मेरे पास एक उपयोगकर्ता मॉडल है जिसे मैं व्यवस्थापक विशेषाधिकारों के साथ संपादित करना चाहता हूं।

जब मैं कनेक्ट करने का प्रयास: यदि आप अलग अलग सुपर-क्लास के साथ दो बार एक ही वर्ग को परिभाषित

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/

मैं यह त्रुटि प्राप्त करते हैं। शायद अपने कोड में class AdminUserController को grepping करने का प्रयास करें ताकि आप सुनिश्चित कर सकें कि आप इसे दो बार परिभाषित नहीं कर रहे हैं। संभावना है कि रेल द्वारा उत्पन्न फाइल के साथ एक संघर्ष है।

0

मैं इसे ठीक किया गया एक "डैशबोर्ड" नियंत्रक और एक "अनुक्रमणिका" def बनाकर। मैंने फिर अपने मार्ग संपादित किए। आरबी इस प्रकार:

Rails.application.routes.draw do 



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

    resources :posts 
end 



end 
संबंधित मुद्दे