Rails定义了一系列具有命名路由的魔法,这些路由为您的路由提供了帮助。有时,特别是对于嵌套路由,跟踪给定路由帮助方法调用的URL可能会有点混乱。是否可以使用Ruby控制台查看给定的帮助函数将生成什么链接?例如,给定一个像post_path(post)这样的命名助手,我想看看生成了什么URL。
yyyllmsg1#
您可以直接使用rake routes显示它们。在Rails控制台中,你可以调用app.post_path。这将在Rails ~= 2.3和〉= 3.1.0中工作。
rake routes
app.post_path
gfttwv5a2#
您还可以
include Rails.application.routes.url_helpers
从控制台会话内部访问helper:
url_for controller: :users, only_path: true users_path # => '/users'
或
Rails.application.routes.url_helpers.users_path
nkoocmlb3#
在Rails控制台中,变量app保存一个会话对象,您可以在该对象上调用path和URL helper作为示例方法。
app.users_path
lmvvr0a84#
您可以随时在控制台中检查path_helpers的输出。
path_helpers
app.post_path(3) #=> "/posts/3" app.posts_path #=> "/posts" app.posts_url #=> "http://www.example.com/posts"
mdfafbf15#
请记住,如果您的路由是名称间隔的,例如:
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>"
gmxoilav6#
对于Rails5.2.4.1,我必须
app.extend app._routes.named_routes.path_helpers_module app.whatever_path
hjzp0vay7#
From rails 6rake routes不存在。你可以跑
rails routes
7条答案
按热度按时间yyyllmsg1#
您可以直接使用
rake routes
显示它们。在Rails控制台中,你可以调用
app.post_path
。这将在Rails ~= 2.3和〉= 3.1.0中工作。gfttwv5a2#
您还可以
从控制台会话内部访问helper:
或
nkoocmlb3#
在Rails控制台中,变量app保存一个会话对象,您可以在该对象上调用path和URL helper作为示例方法。
lmvvr0a84#
您可以随时在控制台中检查
path_helpers
的输出。mdfafbf15#
请记住,如果您的路由是名称间隔的,例如:
然后尝试:
输出
gmxoilav6#
对于Rails5.2.4.1,我必须
hjzp0vay7#
From rails 6
rake routes
不存在。你可以跑