首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出罗达应用程序中的所有路线

列出罗达应用程序中的所有路线
EN

Stack Overflow用户
提问于 2016-09-17 04:37:06
回答 1查看 747关注 0票数 2

在Rails中,我查看通过以下方式定义的所有路由:

rake routes

在Roda应用程序中是否有一个内置的方法来实现这一点?

如果没有,是否有一种通用模式Roda开发人员可以快速查看所有路由(可能是某种Rake任务?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-17 20:57:22

自动不可能。roda路由是在请求传入时动态评估的,因此它们不会在数据结构之前加载并存储在某个可用的数据结构中。

正如文档所说:

每当出现新请求时,都会调用路由块。生成了Rack::Request子类的一个实例,其中包含一些用于匹配路由的其他方法。

一个简单的解决方案是使用roda-route_list插件,但它需要在app.rb文件中的每个路由的顶部进行解释性注释,如下所示:

代码语言:javascript
复制
# route: /path/to/foo
# route: GET /path/to/foo
# ...

(查看文档是否有其他可能性)

然后您必须创建一个包含路由元数据的json文件,您可以这样做,启动roda-route_list插件附带的脚本。

代码语言:javascript
复制
roda-parse_routes -f routes.json app.rb

它在应用程序的根目录中创建文件routes.json,最后您可以通过以下方式列出路由:

代码语言:javascript
复制
route_list # => [{:path=>'/path/to/foo', :methods=>['GET', 'POST']}]
# (it is an Array of route metadata hashes)

您还可以创建一个简单的rake任务来列出所有路由,如下所示:

代码语言:javascript
复制
# Rakefile
require 'roda'

namespace :routes do
  task :list do |task|
    class App < Roda
      plugin :route_list
      puts route_list
    end
  end
end

也许有一个比这个片段更优雅的解决方案,但它有效:)

希望能帮上忙!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39542890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档