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