如果我想以編程方式檢索Rails應用程序,我可以使用下面的代碼片段的所有路由的列表:Rails在哪裏存儲不響應GET的路由?
Rails.application.routes.named_routes.each do |something|; end
每個返回的路線有verb
方法總是返回以下內容:"(?-mix:^GET$)"
,表明路線對GET做出響應。那麼你如何找到響應POST,DELETE等的所有路由?
如果我想以編程方式檢索Rails應用程序,我可以使用下面的代碼片段的所有路由的列表:Rails在哪裏存儲不響應GET的路由?
Rails.application.routes.named_routes.each do |something|; end
每個返回的路線有verb
方法總是返回以下內容:"(?-mix:^GET$)"
,表明路線對GET做出響應。那麼你如何找到響應POST,DELETE等的所有路由?
Rails.application.routes.routes.select{ | r | r.verb.match 'POST' }
這就是我想要的也想到了,但在我的控制檯它沒有產生匹配的路線。 –
'Rails.application.routes.routes.map&:verb'的輸出是什麼? –
動詞列表,例如'[/^GET $ /,/^POST $ /,/^DELETE $ /]' –
這個鏈接的問題沒有明確地回答我的問題,但是答案就在這個代碼片段:''''ROUTES = Rails.application.routes.routes.map do | route | #將路徑路徑規範轉換爲字符串;對所有參數使用「1」 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'''' –