【发布时间】:2011-10-11 12:41:05
【问题描述】:
如果可能的话,我想在我的 rails 3 应用程序中列出所有已定义的辅助路径函数(从路由创建)。
谢谢,
【问题讨论】:
-
打开你的控制台并输入 rake routes
标签: ruby-on-rails ruby-on-rails-3 routes
如果可能的话,我想在我的 rails 3 应用程序中列出所有已定义的辅助路径函数(从路由创建)。
谢谢,
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 routes
rake routes
或
bundle exec rake routes
【讨论】:
RAILS_ENV=dev /opt/rbenv/shims/bundle rake routes 来完成这项工作。
rake routes 已弃用;改用rails routes:github.com/rails/rails/pull/33660
我后来发现,有一个官方的方法可以看到所有的路线,去http://localhost:3000/rails/info/routes。官方文档:https://guides.rubyonrails.org/routing.html#listing-existing-routes
虽然可能晚了,但我喜欢显示所有路线的错误页面。我通常尝试直接从浏览器访问/routes(或一些虚假的)路径。 Rails 服务器自动给我一个路由错误页面以及所有定义的路由和路径。这很有帮助:)
【讨论】:
另一种解决方案是
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 仅用于命名路由
在 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 页面。
【讨论】:
rake routes | grep <specific resource name>
显示资源特定的路线,如果它是一个很长的路线列表。
【讨论】:
已更新至第 6 版
到list all existing routes 你需要运行命令:
bundle exec rails routes
在包的上下文中执行命令
和rails routes 会
列出您定义的所有路线
如果您的 resource 路由声明如下:
resource :credential, only: [:new, :create, :destroy]
【讨论】: