2012-12-07 7 views
5

मैं परीक्षण चलाते समय ActiveAdmin को अक्षम करना चाहता हूं।रेल में निर्देशिका लोडिंग को ब्लैकलिस्ट कैसे करें?

तो मैं Gem12ile में require: false जोड़ता हूं और मार्गों और प्रारंभकर्ताओं में if defined?(ActiveAdmin) की जांच करता हूं।

लेकिन रेल अभी भी मॉडल प्रपत्र app/admin इस प्रकार मैं /app/admin/admin_user.rb:1:in के 'समान त्रुटि हो रही है लोड करता है: अप्रारंभीकृत निरंतर ActiveAdmin (NameError) `

क्या सबसे अच्छा तरीका है करने के लिए" काली सूची "app/admin लोड किए जाने से निर्देशिका है?

उत्तर

6
# config/environments/test.rb 

path_rejector = lambda { |s| s.include?("app/admin") } 

# Remove the path from being loaded when Rails starts: 
config.eager_load_paths = config.eager_load_paths.reject(&path_rejector) 

# Remove the path from being lazily loaded 
ActiveSupport::Dependencies.autoload_paths.reject!(&path_rejector) 
0

config में/जोड़ने application.rb:

config.paths.delete("app/admin") 
new_eager_load_paths = config.eager_load_paths.dup 
new_eager_load_paths.delete("/mnt/hgfs/project/app/admin") 
config.eager_load_paths = new_eager_load_paths 

आप अपने पथ से "/ MNT/hgfs/परियोजना/eventmust/ऐप्स/व्यवस्थापक" को बदलने के लिए है, यह बहुत साफ नहीं है, लेकिन यह काम है।

+0

मेरे लिए काम नहीं कर रहा है। 'Config.paths' में' ऐप/एडमिन 'पथ बिल्कुल नहीं है। इसे 'new_eager_load_paths' से हटाकर फ़ाइल को उत्सुकता से लोड नहीं किया जाता है, लेकिन फिर भी कुछ रेल जादू द्वारा इसे करने की कोशिश करता है (उदाहरण के लिए' डैशबोर्स कंट्रोलर 'लोड करना -' admin/dashboard.rb' लोड करता है जो नहीं होना चाहिए)। विचार? –

+0

रेल 3.2.8 में, मैं ऐप/एडमिन में फ़ाइल में सिर्फ एक वर्ग के साथ परीक्षण करता हूं और यह काम करता है :(। अपने config.paths और config.eager_load_paths का निरीक्षण करें, और शायद फ़ाइल कॉन्फ़िगरेशन के अंत में 4 लाइन जोड़ने की कोशिश करें/application.rb (2 "अंत" से पहले) –

+0

रेल पर 3.2.8' भी। पहले से ही पथ का निरीक्षण किया गया है और 'व्यवस्थापक' पथ के सभी संदर्भ हटा दिए गए हैं। यह 'पर्यावरण/परीक्षण के अंत में भी कर रहा है .rb' (जिसे 'config/application.rb' के बाद लोड किया गया है और पुष्टि की गई है कि यह वास्तव में लोड हो गया है)। –

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