【问题标题】:Where does Rails store routes that do not respond to GET? [duplicate]Rails 在哪里存储不响应 GET 的路由? [复制]
【发布时间】:2016-02-22 17:05:47
【问题描述】:

如果我想以编程方式检索 rails 应用程序中所有路线的列表,我可以使用以下 sn-p:

Rails.application.routes.named_routes.each do |something|; end

每个返回的路由都有一个verb方法,该方法总是返回以下内容:"(?-mix:^GET$)",表示该路由响应GET。那么如何找到所有响应 POST、DELETE 等的路由呢?

【问题讨论】:

  • 这个链接到的问题没有明确回答我的问题,但是答案就在这个代码 sn-p:ROUTES = Rails.application.routes.routes.map do |route| # Turn route path spec into string; use "1" for all params path = route.path.spec.to_s.gsub(/\(\.:format\)/, "").gsub(/:[a-zA-Z_]+/, "1") verb = %W{ GET POST PUT PATCH DELETE }.grep(route.verb).first.downcase.to_sym { path: path, verb: verb } end

标签: ruby-on-rails ruby


【解决方案1】:
Rails.application.routes.routes.select{ | r | r.verb.match 'POST' }

【讨论】:

  • 我也是这么想的,但在我的控制台中它不会产生匹配的路由。
  • Rails.application.routes.routes.map &:verb 的输出是什么?
  • 动词列表,例如[/^GET$/, /^POST$/, /^DELETE$/]
  • 啊!我注意到我在最初的回复中犯了一个错误 - 由于某种原因,我在末尾添加了 ;0,因此没有输出 - 表示歉意!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多