Rails définit un ensemble de magie avec des itinéraires nommés qui constituent des aides pour vos itinéraires. Parfois, en particulier avec les routes imbriquées, il peut être un peu déroutant de savoir quelle URL vous obtiendrez pour un appel de méthode d'assistance de route donné. Est-il possible, à l'aide de la console Ruby, de voir quel lien une fonction d'assistance donnée va générer? Par exemple, étant donné un assistant nommé tel que post_path (post), je veux voir quelle URL est générée.
Vous pouvez les montrer avec rake routes
directement.
Dans une console Rails, vous pouvez appeler app.post_path
. Cela fonctionnera dans Rails ~ = 2.3 et> = 3.1.0.
vous pouvez aussi
include Rails.application.routes.url_helpers
depuis une console pour accéder aux aides:
url_for controller: :users, only_path: true
users_path
# => '/users'
Dans la console Rails, la variable app contient un objet de session sur lequel vous pouvez appeler des aides de chemin et d'URL en tant que méthodes d'instance.
app.users_path
Vous pouvez toujours vérifier le résultat de path_helpers
dans la console. Il suffit d'utiliser l'assistant avec app
app.post_path(3)
#=> "/posts/3"
app.posts_path
#=> "/posts"
app.posts_url
#=> "http://www.example.com/posts"
Rappelez-vous si votre route est nom-espacée, comme:
product GET /products/:id(.:format) spree/products#show
Alors essaye :
helper.link_to("test", app.spree.product_path(Spree::Product.first), method: :get)
sortie
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>"