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控制檯搜索路徑和Postgres
- 3. 在Rails控制檯內使用夾具查找器助手
- 4. Rails:控制器助手
- 5. 格式化Rails的控制檯輸出
- 6. Rails路徑助手不一致
- 7. Rails - 在哪裏放置路徑助手?
- 8. Rails助手找到當前路徑
- 9. Rails 4.0中的路徑,路徑助手和STI
- 10. 退出Ruby on Rails的控制方法從助手
- 11. C#:從控制檯輸出分離控制檯輸入
- 12. Rails檢查IRB控制檯或網頁
- 13. 在Rails 3路徑中重命名路徑助手
- 14. 控制檯輸出
- 15. 輸出控制檯
- 16. SQL查詢不從Rails的控制檯
- 17. 助手中的Rails方法在控制檯中不起作用
- 18. 如何從Rails助手函數中的對象派生路徑?
- 19. Zend Framework助手的路徑
- 20. 在Ruby On Rails CLI中,如何列出助手路徑?
- 21. 您是否必須定義控制器助手才能在rails中獲取新路徑的路徑?
- 22. 控制器中的助手 - Rails 3
- 23. 視圖和控制器的Rails助手?
- 24. 檢查Ruby上的瀏覽器控制檯輸出
- 25. os.system()的控制檯輸出?
- 26. 的IntelliJ控制檯輸出
- 27. Rails控制檯 - 輸出查詢結果表
- 28. 嵌套控制器/命名空間路徑助手
- 29. myeclipse控制檯輸出從哪裏來?
- 30. 從控制檯程序讀取輸出
,似乎這是有可能從軌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