2012-09-07 13 views
6

मैं अपने अनुप्रयोग में व्यवस्थापक पैनल बना रही हूँ, मैं पाड़ उपयोगकर्ता नियंत्रक व्यवस्थापक के लिए (उपयोगकर्ता मॉडल पहले से मौजूद है) इस तरह बनाया नाम स्थान:रेल अप्रारंभीकृत निरंतर

rails g scaffold_controller Admin::User username:string password_digest:string role:string 

और मार्गों में

namespace :admin do 
resources :users 
resources :dashboard 
end 

और नियंत्रक/व्यवस्थापक/users_controllers.erb लग रहा है

class Admin::UsersController < ApplicationController 
    # GET /admin/users 
    # GET /admin/users.json 
    def index 
    @admin_users = Admin::User.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @admin_users } 
    end 
    end 

की तरह तो मैं पालन मिला जब मैं यूआरएल/व्यवस्थापक/उपयोगकर्ताओं के लिए जाना ing त्रुटि:

NameError in Admin::UsersController#index 

uninitialized constant Admin::User 

मैं कैसे इस समस्या को हल करते

धन्यवाद

+0

'ऐप/मॉडल/व्यवस्थापक/user.rb' कैसा दिखता है? – rubiii

उत्तर

5

अपने पहले से मौजूद हैं User मॉडल namespaced नहीं है,

@admin_users = ::User.all 
साथ

@admin_users = Admin::User.all 

की जगह की कोशिश

+0

@admin_users = :: User.all मार्गों की त्रुटि देता है: अपरिभाषित विधि 'user_path' – Jawad

+0

मचान द्वारा उत्पन्न कोड आपके 'उपयोगकर्ता' मॉडल को नियंत्रक की तरह मॉड्यूल 'व्यवस्थापक' में होने की अपेक्षा करता है। सुनिश्चित करें कि आपके 'routes.rb' में' नेमस्पेस: व्यवस्थापक {संसाधन: उपयोगकर्ता} 'जैसा कुछ है; फिर अपने 'ऐप/विचार/व्यवस्थापक/उपयोगकर्ता/index.html.erb' पर जाएं और 'link_to' दिखाएँ ', admin_user' को' link_to 'दिखाने के लिए', admin_user_path (admin_user) '; और 'link_to 'नष्ट करें', admin_user, ...' 'link_to 'नष्ट करें', admin_user_path (admin_user), ...'। –

+0

धन्यवाद, आपके समर्थन – Jawad

3

मुझे लगता है कि जनरेटर निर्देशिका मॉडल/व्यवस्थापक नहीं बनाया है, इसलिए आपको User.all को कॉल करना चाहिए और व्यवस्थापक :: User.all नहीं।

चेक अगर user.rb मॉडल या मॉडल/व्यवस्थापक में है ...

+0

कोई निर्देशिका मॉडल/व्यवस्थापक के लिए ... मैं व्यवस्थापक नाम स्थान के लिए अलग मॉडल बनाने के लिए है, इसके अलावा User.all मार्गों त्रुटि देता है "अपरिभाषित विधि' user_path ' " – Jawad

+0

आप हाँ चाहते हैं ... लेकिन यह आवश्यक नहीं है। मुझे लगता है कि आपके मामले में आप यह नहीं चाहते हैं। उपयोगकर्ता निर्देशिका मॉडल में होना चाहिए, और फिर आप हमेशा user.all के लिए कॉल करेंगे। – tbem

+0

मार्ग त्रुटि देता है "अपरिभाषित विधि 'user_path'" ऐसा इसलिए है क्योंकि आपके पास user_controller नहीं है बल्कि इसके बजाय admin_users_controller है, इसलिए आपके पास admin_users_path है और उपयोगकर्ता_पथ नहीं है ... और मार्ग में आपके पास नामस्थान है: व्यवस्थापक संसाधन करते हैं: उपयोगकर्ता और संसाधन नहीं: नामस्थान व्यवस्थापक के बाहर उपयोगकर्ता – tbem

0

मेरी विशेष मामले में, मैं सही ढंग से फ़ाइलें और वर्गों में नामित किया गया था, लेकिन युक्त फ़ोल्डरगलत तरीके से नामित किया गया था।

मैं था:

/models/map/type.rb 

सूचना विलक्षण फ़ोल्डर का नाम:

/models/maps/type.rb 

मैं करने के लिए इसे बदलना पड़ा। इसे एकवचन अनुमति देने के लिए रेल को स्वचालित रूप से दाएं वर्ग को लोड करने की अनुमति है और अब यह त्रुटि रनटाइम पर नहीं है।

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