【问题标题】:Rails 3: I want to list all paths defined in my rails applicationRails 3:我想列出我的 rails 应用程序中定义的所有路径
【发布时间】:2011-10-11 12:41:05
【问题描述】:

如果可能的话,我想在我的 rails 3 应用程序中列出所有已定义的辅助路径函数(从路由创建)。

谢谢,

【问题讨论】:

  • 打开你的控制台并输入 rake routes

标签: ruby-on-rails ruby-on-rails-3 routes


【解决方案1】:
rake routes

bundle exec rake routes

【讨论】:

  • 此外,如果您想检查给定路径是否被应用的路由器识别,请参阅this
  • 在特定情况下,我不得不使用RAILS_ENV=dev /opt/rbenv/shims/bundle rake routes 来完成这项工作。
  • rake routes 已弃用;改用rails routesgithub.com/rails/rails/pull/33660
【解决方案2】:

更新

我后来发现,有一个官方的方法可以看到所有的路线,去http://localhost:3000/rails/info/routes。官方文档:https://guides.rubyonrails.org/routing.html#listing-existing-routes


虽然可能晚了,但我喜欢显示所有路线的错误页面。我通常尝试直接从浏览器访问/routes(或一些虚假的)路径。 Rails 服务器自动给我一个路由错误页面以及所有定义的路由和路径。这很有帮助:)

所以,就去http://localhost:3000/routes

【讨论】:

  • 显而易见,这只适用于开发环境。
  • 这是捆绑到 Rails 4 中的,但问题是关于 Rails 3。您需要安装 Sextant gem 才能在 3 中使用它。
【解决方案3】:

另一种解决方案是

Rails.application.routes.routes

http://hackingoff.com/blog/generate-rails-sitemap-from-routes/

【讨论】:

  • Rails.application.routes.routes.map { |r| {alias: r.name, path: r.path.spec.to_s, controller: r.defaults[:controller], action: r.defaults[:action]}}
  • Rails.application.routes.routes.map(&:name).compact 仅用于命名路由
【解决方案4】:

在 Rails 5 API 应用程序(即:仅面向 JSON)上尝试 http://0.0.0.0:3000/routes 将(从 Rails beta 3 开始)返回

{"status":404,"error":"Not Found","exception":"#> 
<ActionController::RoutingError:...

但是,http://0.0.0.0:3000/rails/info/routes 将呈现一个漂亮、简单的带有路由的 HTML 页面。

【讨论】:

    【解决方案5】:
    rake routes | grep <specific resource name>
    

    显示资源特定的路线,如果它是一个很长的路线列表。

    【讨论】:

      【解决方案6】:

      命令行

      已更新至第 6 版

      list all existing routes 你需要运行命令:

      bundle exec rails routes
      

      bundle exec

      在包的上下文中执行命令

      rails routes

      列出您定义的所有路线

      示例

      如果您的 resource 路由声明如下:

      resource :credential, only: [:new, :create, :destroy]
      

      然后pipe 输出会很有帮助,这样您就可以grep 获取您的特定资源。

      例如:

      【讨论】:

        猜你喜欢
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 1970-01-01
        • 2017-03-07
        • 1970-01-01
        相关资源
        最近更新 更多