2016-02-22 81 views
2

如果我想以編程方式檢索Rails應用程序,我可以使用下面的代碼片段的所有路由的列表:Rails在哪裏存儲不響應GET的路由?

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

每個返回的路線有verb方法總是返回以下內容:"(?-mix:^GET$)" ,表明路線對GET做出響應。那麼你如何找到響應POST,DELETE等的所有路由?

+0

這個鏈接的問題沒有明確地回答我的問題,但是答案就在這個代碼片段:''''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'''' –

回答

1
Rails.application.routes.routes.select{ | r | r.verb.match 'POST' } 
+0

這就是我想要的也想到了,但在我的控制檯它沒有產生匹配的路線。 –

+0

'Rails.application.routes.routes.map&:verb'的輸出是什麼? –

+0

動詞列表,例如'[/^GET $ /,/^POST $ /,/^DELETE $ /]' –