首页 文章

Rails:从控制台检查路径助手的输出

提问于
浏览
250

Rails定义了一堆带有命名路由的魔法,为你的路线提供帮助 . 有时,特别是对于嵌套路由,跟踪给定路由助手方法调用所获得的URL会有点混乱 . 是否可以使用Ruby控制台查看给定帮助函数将生成的链接?例如,给定一个像post_path(post)这样的命名助手,我想看看生成了什么URL .

5 回答

  • 288

    您可以直接使用 rake routes 显示它们 .

    在Rails控制台中,您可以调用 app.post_path . 这将适用于Rails~ = 2.3和> = 3.1.0 .

  • 18

    在Rails控制台中,变量app包含一个会话对象,您可以在其上调用路径和URL帮助程序作为实例方法 .

    app.users_path
    
  • 1

    请记住,如果您的路线是名称间隔的,请:

    product GET  /products/:id(.:format)  spree/products#show
    

    然后尝试:

    helper.link_to("test", app.spree.product_path(Spree::Product.first), method: :get)
    

    output

    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>"
    
  • 376

    你也可以

    include Rails.application.routes.url_helpers
    

    从控制台会话内部访问帮助程序:

    url_for controller: :users, only_path: true
    users_path
    # => '/users'
    
  • 9

    您始终可以在控制台中检查 path_helpers 的输出 . 只需使用 app 的助手

    app.post_path(3)
    #=> "/posts/3"
    
    app.posts_path
    #=> "/posts"
    
    app.posts_url
    #=> "http://www.example.com/posts"
    

相关问题