訪問已編譯的路由我試圖生成由我的Grape :: API(MyApi)的子類生成的所有路由的列表。葡萄/ Rack :: Mount :: Route
我可以通過調用親近:
MyApi.send(:route_set).instance_variable_get(:@routes)
這給了我機架安裝:: ::路由對象的數組。
路由對象,它是有用的唯一屬性是:它返回一個哈希這樣的條件:
:path_info => (?-mix:\\A\\/api\\/(?<version>v1)\\/token(?:\\.(?<format>[^\\/]+))?\\Z)", "k: request_method, v: (?-mix:\\AGET\\Z)
正如你所看到的哈希值,用於匹配路由的路徑的正則表達式。我還可以使用:named_captures來從正則表達式的所有命名捕獲:
{:path_info=>{:version=>0, :format=>1}, :request_method=>{}}
最後我想要做的是通過生成葡萄創建的所有路由列表:: API,它們的完整路徑,等等。在條件下嘗試解構正則表達式對我來說沒有任何意義。是否有另一種訪問/生成Rack :: Mount :: Route的可讀路徑的方法?
該鏈接已關閉,並且它是一個.xxx域?嗯 – 2014-02-20 11:51:14
是的@sardaukar,但你可以在這裏http://hermes-vertigem.herokuapp。com/2013/04/02/rake-routes-no-grape /我修復了答案,Thankx – Duke 2014-02-26 01:43:18