在Rails中,如何查看Rails路由添加的所有“path”和“url”方法? (更新:使用Rails控制台)
[更新:不使用rake routes
,只是为了更多地了解Rails控制台]
看起来像Rails 3的“rails console”里面,我们可以使用controller
,但是在Rails 2.2或2.3中,我们需要使用@controller
而在Rails 3中,我们可以打印出所有通过Rails路由添加到脚手架foo
路由:
ruby-1.9.2-p0 > puts controller.public_methods.grep(/path|url/).grep(/foo/).sort.join("\n") edit_foo_path edit_foo_url foo_path foo_url foos_path foos_url new_foo_path new_foo_url
但在Rails 2.3.8上,它提供了一堆formatted_foos_path
等,并没有给Rails 2.2.2。 如何使它打印出Rails 2.3.8和2.2.2?
Rails 2.3.8的详细信息:
ruby-1.8.7-p302 > puts @controller.public_methods.grep(/path|url/).grep(/foo/).sort.join("\n") formatted_edit_foo_path formatted_edit_foo_url formatted_foo_path formatted_foo_url formatted_foos_path formatted_foos_url formatted_new_foo_path formatted_new_foo_url
helpers = Rails.application.routes.named_routes.helpers
这将获得所有已创build的命名路由方法。 然后,你可以做helpers.map(&:to_s)
,以及任何你想得到你的foo版本的正则expression式
那么在Rails 4中,我使用了rake routes
。 你需要吗?
或者在浏览器中加载localhost_path/rails/info/routes
。