在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 

3 Solutions collect form web for “在Rails中,如何查看Rails路由添加的所有“path”和“url”方法? (更新:使用Rails控制台)”

 helpers = Rails.application.routes.named_routes.helpers 

这将获得所有已创build的命名路由方法。 然后,你可以做helpers.map(&:to_s) ,以及任何你想得到你的foo版本的正则expression式

那么在Rails 4中,我使用了rake routes 。 你需要吗?

或者在浏览器中加载localhost_path/rails/info/routes

  • Ruby on Rails 3无法通过OSX上的套接字“/tmp/mysql.sock”连接到本地MySQL服务器
  • Ruby的gem命名约定
  • Rails 3分页,will_paginate与Kaminari
  • Rails Modelfind哪里不对等
  • Rails 3:如何在Ajax调用中“redirect_to”?
  • 如何在rails中的命名空间中生成控制器
  • 如何更改Rails 3控制器中的视图文件的默认path?
  • 如何在rails html.erb文件中注释行?
  • 如何检测我的代码是否在Rails 3的控制台中运行?
  • Rails 3:Passenger找不到捆绑器安装的git gems
  • 我如何在Rails 3中传递多个属性到find_or_create_by?