2012-01-18 15 views
12

क्या रेल 3.X routes.rb फ़ाइल को विभाजित करना संभव है?रूट्स.आरबी को छोटी फ़ाइलों में कैसे विभाजित करें

हमारे पास इतने सारे संसाधन हैं जो उन्हें ढूंढना मुश्किल है। मैं कम से कम एपीपी और आरईएसटी एपीआई मार्गों को विभाजित करना चाहता हूं।

धन्यवाद!

उत्तर

20

आप ऐसा कर सकते हैं:

routes.rb

require 'application_routes' 
require 'rest_api_routes' 

lib/application_routes.rb

YourApplication::Application.routes.draw do 
    # Application related routes 
end 

lib/rest_api_routes.rb

YourApplication::Application.routes.draw do 
    # REST API related routes 
end 

युपीडी एटीई: (इस विधि के बाद से रेल से हटा दिया गया)

रेल बढ़त सिर्फ एक महान इसके अलावा, कई मार्ग फ़ाइलें मिल गया:

# config/routes.rb 
draw :admin 

# config/routes/admin.rb 
namespace :admin do 
    resources :posts 
end 

इस बड़े क्षुधा में जटिल मार्ग फ़ाइलों टूट के लिए काम आ जाएगा।

+0

config में कॉन्फ़िगरेशन सेट कर सकते हैं! धन्यवाद! :-) – lzap

+1

यह केवल मेरे लिए विकास में काम कर रहा है, एक बार जब मैं कक्षाओं को कैश करना शुरू करता हूं तो यह अब काम नहीं करता है – deb

+0

हमारे पास यह सेटअप है और उत्पादन में भी अच्छा काम कर रहा है। –

6

Rails3 में, आप/application.rb

config.paths.config.routes.concat Dir[Rails.root.join("config/routes/*.rb")] 
+1

यह रूट्स में फ़ाइलों की आवश्यकता के बजाय मेरे लिए बेहतर काम करता है। आरबी – deb

+3

इस दृष्टिकोण के साथ मार्गों का क्रम क्या है? – Robin

+0

@ रोबिन मैंने अपने ओएस एक्स देव मशीन पर हमारे ऐप में प्रयोग किया। मैंने फ़ाइल नाम के सामने संख्याएं रखीं और "1_routes.rb" के मार्ग "2_routes.rb" से पहले आए, लेकिन जब मैंने "1" को "3" में बदल दिया। लेकिन यह [लगता है] (http://stackoverflow.com/questions/7389733/sort-order-in-rubys-dir-entries-method) 'Dir.entries' के आदेश की गारंटी नहीं है, इसलिए आपको शायद' Dir की आवश्यकता है [...] .sort' इस पर भरोसा करने के लिए। –

3

रेल 3.2.11

config.paths["config/routes"].concat Dir[Rails.root.join("config/routes/*.rb")]

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