Rails定義了一系列具有命名路由的魔術,可以爲路由創建助手。有時候,特別是對於嵌套路由,它可能會有點困惑,以便跟蹤給定路由幫助方法調用的URL。是否有可能使用Ruby控制檯查看給定幫助函數將生成的鏈接?例如,給定一個像post_path(post)這樣的名字助手,我想查看生成的URL。Rails:從控制檯檢查路徑助手的輸出
回答
您可以直接使用rake routes
向他們展示。
在Rails控制檯中,您可以撥打app.post_path
。這將工作在Rails〜= 2.3和> = 3.1.0。
你也可以
include Rails.application.routes.url_helpers
從控制檯會話中訪問助手:
url_for controller: :users, only_path: true
users_path
# => '/users'
這比上述解決方案要容易得多IMO – Andrew 2013-01-10 01:43:24
這是對原始問題的正確答案我的意見 – nemesisdesign 2013-04-10 09:36:14
這應該是最好的解決辦法IMO – 2015-02-16 15:57:30
在Rails的控制檯,變量應用程序保存會話對象上,你可以調用路徑URL助手作爲實例方法。
app.users_path
請記住,如果您的路線是命名空間的,像:
product GET /products/:id(.:format) spree/products#show
然後嘗試:
helper.link_to("test", app.spree.product_path(Spree::Product.first), method: :get)
輸出
Spree::Product Load (0.4ms) SELECT "spree_products".* FROM "spree_products" WHERE "spree_products"."deleted_at" IS NULL ORDER BY "spree_products"."id" ASC LIMIT 1
=> "<a data-method=\"get\" href=\"/products/this-is-the-title\">test</a>"
您可以隨時CHEC k在控制檯中輸出path_helpers
。纔剛剛在我自己的意見的後續使用助手與app
app.post_path(3)
#=> "/posts/3"
app.posts_path
#=> "/posts"
app.posts_url
#=> "http://www.example.com/posts"
- 1. 刷新助手從Rails的控制檯
- 2. 在Rails控制檯內使用夾具查找器助手
- 3. 如何從控制檯訪問Rails測試助手代碼?
- 4. Rails助手找到當前路徑
- 5. Rails路徑助手不一致
- 6. Rails - 在哪裏放置路徑助手?
- 7. 退出Ruby on Rails的控制方法從助手
- 8. 控制檯輸出
- 9. 在Rails 3路徑中重命名路徑助手
- 10. 在Ruby On Rails CLI中,如何列出助手路徑?
- 11. Zend Framework助手的路徑
- 12. 您是否必須定義控制器助手才能在rails中獲取新路徑的路徑?
- 13. 視圖和控制器的Rails助手?
- 14. 控制器中的助手 - Rails 3
- 15. 的IntelliJ控制檯輸出
- 16. 從控制檯程序讀取輸出
- 17. 從控制檯隱藏輸出
- 18. myeclipse控制檯輸出從哪裏來?
- 19. 從控制檯掛鉤輸出
- 20. 從Node.js輸出到Chrome控制檯
- 21. 連接失敗!檢查輸出控制檯
- 22. Rails的控制器未找到路徑
- 23. 從控制檯檢查庫(.cma)簽名
- 24. 控制檯輸出格式
- 25. SharePoint控制檯輸出
- 26. Symfony控制檯輸出
- 27. 控制檯輸出錯誤
- 28. C#UTF8控制檯輸出
- 29. C#控制檯輸出
- 30. Ruby和控制檯輸出
,似乎這是有可能從軌3遊戲機的,如果你正在使用。 第一,堅持一個假的請求在您的應用對象,通過調用像 'app.get「/」' 然後就instance_eval的有用方法,因爲他們現在默認的保護。例如: 'app.instance_eval {post_path(post)}' – Chubas 2010-05-17 02:17:44
上面的Chubas的註釋工作在Rails 3中。這在編寫測試時非常有用,所以我不必等待1分鐘才能發現路由是不正確。此外,測試獲得和發佈呼叫是很好的。你不需要先調用app.get。 – 2011-08-17 16:50:39
'app.foo_path'似乎可以在Rails 3.1.0中使用。 – 2011-10-06 17:50:55