45 - Comment raccourcir vos liens avec les routes ? Initiation à Ruby
- 5 mins
Dans cet article, on va parler de la redirection de liens et plus particulièrement des routes d’URL.
« Pour suivre ce cours il est plus que conseillé d’avoir sous la main ce lien ou ces fichiers pdf, pour rappel, les cours sont basés dessus et cet article reprend le chapitre 5.
Avertissement
Avant de commencer, je tiens à préciser que les cours seront dorénavant plus courts et moins explicites. Je vous conseille donc plus que jamais de vous aider avec les liens fournis.
Routage
Aujourd’hui on va donc s’attaquer aux routage d’url. C’est quoi ? Le routage d’url c’est quand vous allez sur une page de votre application, l’url est : localhost:3000/pages/home. Et bien nous on veut que ça ressemble plus à ça : localhost:3000/ Tout simplement. Alors comment ça se passe ? Déjà on commence par les tests.
Les tests
Pour rappel, on veux créer un test d’intégration avec rspec et pour les liens du layout de notre application. Pour ça on va donc générer les tests avec cette commande :
Pour tester si notre page répond à la bonne adresse (prenons par exemple la page d’accueil qui répondra à l’adresse ‘ / ‘) on va se servir de la même méthode que les premiers tests, soit ceux ci :
Lorsque l’on génère notre fichier test on obtient un fichier (spec/requests/layout_links_spec.rb) contenant déjà ceci :
require'rails_helper'RSpec.describe"LayoutLinks",type: :requestdodescribe"GET /layout_links"doit"works! (now write some real specs)"dogetlayout_links_index_pathexpect(response).tohave_http_status(200)endendend
Et bien on va faire un mix des deux ce qui nous donnera quelque chose comme ça :
RSpec.describe"LayoutLinks",type: :requestdoit"devrait trouver une page Accueil à '/'"doget'/'expect(response).tohave_http_status(:success)end
A vous d’adapter le reste des pages. Vous pouvez maintenant lancer les tests et vérifier qu’ils échouent. On peux maintenant passer à l’étape suivante.
Redirection
Rendez vous dans le fichier config/routes.rb. C’est ici que va avoir lieu la redirection, et voici comment ça se passe :
Maintenant que les routes sont paramétrées, il faut indiquer à chaque lien que l’on a fait une redirection. Donc on va dans chaque partiel de page. À ce moment là il y a deux façons de faire, comme ça (c’est comme ça que j’ai fait personnellement) :
<header><%logo = image_tag("mwitter.jpg",:alt => "Mwitter",:class => 'img-rounded',size:"200x200")%><%=link_tologo,'/'%><nav><ulclass="unstyled inline"><li><%=link_to"Home",'/'%></li><li><%=link_to"Signup",'/signup'%></li><li><%=link_to"Signin",'/signin'%></li></ul></nav><h1>Welcome on Mwitter</h1></header>
ou :
<header><%logo = image_tag("mwitter.jpg",:alt => "Mwitter",:class => 'img-rounded',size:"200x200")%><%=link_tologo,root_path%><nav><ulclass="unstyled inline"><li><%=link_to"Home",root_path%></li><li><%=link_to"Signup",signup_path%></li><li><%=link_to"Signin",signin_path%></li></ul></nav><h1>Welcome on Mwitter</h1></header>
Voyez que j’en ai profité pour mettre le lien de la page d’accueil lorsque l’on clique sur le logo. Et surtout, notez que à la ligne 2, le “ = “ n’est plus présent ! Si vous le laissez, deux logos apparaitront. Vous pouvez déjà aller essayer votre nouveau routage : **http://localhost:3000/ **qui vous mènera à la page d’accueil et http://localhost:3000/signin qui vous mènera à la page de connexion.
45 - Comment raccourcir vos liens avec les routes ? Initiation à Ruby
- 5 minsDans cet article, on va parler de la redirection de liens et plus particulièrement des routes d’URL.
« Pour suivre ce cours il est plus que conseillé d’avoir sous la main ce lien ou ces fichiers pdf, pour rappel, les cours sont basés dessus et cet article reprend le chapitre 5.
Routage
Aujourd’hui on va donc s’attaquer aux routage d’url. C’est quoi ? Le routage d’url c’est quand vous allez sur une page de votre application, l’url est : localhost:3000/pages/home. Et bien nous on veut que ça ressemble plus à ça : localhost:3000/ Tout simplement. Alors comment ça se passe ? Déjà on commence par les tests.
Les tests
Pour rappel, on veux créer un test d’intégration avec rspec et pour les liens du layout de notre application. Pour ça on va donc générer les tests avec cette commande :
Pour tester si notre page répond à la bonne adresse (prenons par exemple la page d’accueil qui répondra à l’adresse ‘ / ‘) on va se servir de la même méthode que les premiers tests, soit ceux ci :
Lorsque l’on génère notre fichier test on obtient un fichier (spec/requests/layout_links_spec.rb) contenant déjà ceci :
Et bien on va faire un mix des deux ce qui nous donnera quelque chose comme ça :
A vous d’adapter le reste des pages. Vous pouvez maintenant lancer les tests et vérifier qu’ils échouent. On peux maintenant passer à l’étape suivante.
Redirection
Rendez vous dans le fichier config/routes.rb. C’est ici que va avoir lieu la redirection, et voici comment ça se passe :
Maintenant que les routes sont paramétrées, il faut indiquer à chaque lien que l’on a fait une redirection. Donc on va dans chaque partiel de page. À ce moment là il y a deux façons de faire, comme ça (c’est comme ça que j’ai fait personnellement) :
ou :
Voyez que j’en ai profité pour mettre le lien de la page d’accueil lorsque l’on clique sur le logo. Et surtout, notez que à la ligne 2, le “ = “ n’est plus présent ! Si vous le laissez, deux logos apparaitront. Vous pouvez déjà aller essayer votre nouveau routage : **http://localhost:3000/ **qui vous mènera à la page d’accueil et http://localhost:3000/signin qui vous mènera à la page de connexion.
Bye !
Jeremy Montesinos
Développeur Ruby On Rails chez Af83 :D