加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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包含一个包含路由名称,路径以及控制器和操作的哈希.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读