मैं रेक मार्गों फिर से लिख दिया थोड़ा कमान रेक मार्गों उत्पादन
के एक से थोड़ा अधिक प्रयोग करने योग्य html संस्करण उत्पन्न करने के लिए एक फ़ाइल pretty_routes.rake
बनाएँ और lib/tasks/
में इस डाल दिया और rake pretty_routes
फोन और यह
थोड़ा बेहतर होना चाहिए
desc 'Pretty print out all defined routes in match order, with names. Target specific controller with CONTROLLER=x.'
task :pretty_routes => :environment do
all_routes = ENV['CONTROLLER'] ? ActionController::Routing::Routes.routes.select { |route| route.defaults[:controller] == ENV['CONTROLLER'] } : ActionController::Routing::Routes.routes
routes = all_routes.collect do |route|
name = ActionController::Routing::Routes.named_routes.routes.index(route).to_s
verb = route.conditions[:method].to_s.upcase
segs = route.segments.inject("") { |str,s| str << s.to_s }
segs.chop! if segs.length > 1
reqs = route.requirements.empty? ? "" : route.requirements.inspect
{:name => name, :verb => verb, :segs => segs, :reqs => reqs}
end
File.open(File.join(RAILS_ROOT, "routes.html"), "w") do |f|
f.puts "<html><head><title>Rails Routes</title></head><body><table border=1>"
f.puts "<tr><th>Name</th><th>Verb</th><th>Segments</th><th>Requirements</th></tr>"
routes.each do |r|
f.puts "<tr><td>#{r[:name]}</td><td>#{r[:verb]}</td><td>#{r[:segs]}</td><td>#{r[:reqs]}</td></tr>"
end
f.puts "</table></body></html>"
end
`open #{File.join(RAILS_ROOT, "routes.html")}`
end
अंतिम पंक्ति के लिए दूसरा केवल मैक ओएसएक्स पर रेल 2.x में काम करता है, लेकिन यह स्वचालित रूप से आपके ब्राउज़र में फ़ाइल खोलता है। यदि आप एक अलग मंच पर हैं, तो आपको कमांड को बदलना होगा।
आप रेल 3.x चला रहे हैं, अंतिम पंक्ति से पीछे नहीं
`open #{File.join(Rails.root, "routes.html")}`
स्रोत
2010-10-21 16:58:47
आईटी चालाक। और मैं आपको इसके लिए बिल्कुल कडोस देता हूं, लेकिन मुझे एक ही समय में सभी मार्ग मिलना पसंद नहीं है। मैं आमतौर पर 'रेक मार्गों' के लिए जाता हूं grep कुछ विशिष्ट ' – Trip
यह रेल 3 के साथ टूटा हुआ लगता है? रेक निरस्त! # (--trace के साथ कार्य चलकर पूर्ण ट्रेस देखें) –
Lichtamberg
Lichtamberg: बिल्कुल के लिए अपरिभाषित विधि 'सेगमेंट'। मैं अभी भी रेल 2.3.x पर हूं, रेल 3 पूरी तरह रूटिंग रूटिंग है, इसलिए आपको अपने लिए काम करने के लिए समाधान को संशोधित करना होगा। –