ruby-on-rails – 在视图/控制器中显示路由
发布时间:2020-12-17 02:38:20 所属栏目:百科 来源:网络整理
导读:我在 Ruby on Rails中编写了一个API,我希望有一个页面列出所有可用的路由(我知道这可以通过使用rake路由的命令行完成). 我想自动生成这个,而不是每次更新代码时都要自己更新.有没有办法获得控制器(或视图)中所有路由的列表? 解决方法 我开始探索jvnill给出
我在
Ruby on Rails中编写了一个API,我希望有一个页面列出所有可用的路由(我知道这可以通过使用rake路由的命令行完成).
我想自动生成这个,而不是每次更新代码时都要自己更新.有没有办法获得控制器(或视图)中所有路由的列表? 解决方法
我开始探索jvnill给出的解决方案,并在文档中发现它表明RouteInspector
should not be used.出于什么原因我不知道,但我决定查看代码,并尝试获得更有用的输出而不是只是字符串.我使用jvnill的代码作为起点.
all_routes = Rails.application.routes.routes routes = all_routes.routes.collect do | route | reqs = route.requirements controller = reqs[:controller] || ':controller' action = reqs[:action] || ':action' constraints = reqs.except(:controller,:action) verb = route.verb.source.gsub(/[$^]/,'') {name: route.name.to_s,verb: verb,path: route.path.spec.to_s,reqs: reqs} end routes.reject! { |r| r[:path].starts_with?("/rails/info/properties") || r[:path] == "#{Rails.application.config.assets.prefix}" } 然后,routes包含一个包含路由名称,路径以及控制器和操作的哈希. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |