在Rails中,我查看通过以下方式定义的所有路由:
rake routes
在Roda应用程序中是否有一个内置的方法来实现这一点?
如果没有,是否有一种通用模式Roda开发人员可以快速查看所有路由(可能是某种Rake任务?)
发布于 2016-09-17 20:57:22
自动不可能。roda路由是在请求传入时动态评估的,因此它们不会在数据结构之前加载并存储在某个可用的数据结构中。
正如文档所说:
每当出现新请求时,都会调用路由块。生成了Rack::Request子类的一个实例,其中包含一些用于匹配路由的其他方法。
一个简单的解决方案是使用roda-route_list插件,但它需要在app.rb文件中的每个路由的顶部进行解释性注释,如下所示:
# route: /path/to/foo
# route: GET /path/to/foo
# ...(查看文档是否有其他可能性)
然后您必须创建一个包含路由元数据的json文件,您可以这样做,启动roda-route_list插件附带的脚本。
roda-parse_routes -f routes.json app.rb它在应用程序的根目录中创建文件routes.json,最后您可以通过以下方式列出路由:
route_list # => [{:path=>'/path/to/foo', :methods=>['GET', 'POST']}]
# (it is an Array of route metadata hashes)您还可以创建一个简单的rake任务来列出所有路由,如下所示:
# Rakefile
require 'roda'
namespace :routes do
task :list do |task|
class App < Roda
plugin :route_list
puts route_list
end
end
end也许有一个比这个片段更优雅的解决方案,但它有效:)
希望能帮上忙!
https://stackoverflow.com/questions/39542890
复制相似问题