L'essentiel de Ruby on Rails

Travailler avec l'association has_one/belongs_to

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Abordez votre première association 1 et 1. Bien qu'étant simple à comprendre, elle n'est pas la plus classique. Cependant, elle vous permettra de lier un utilisateur à ses données de profil.
05:20

Transcription

Nous allons dans cette vidéo, exploiter l'association Has one belongs to pour ajouter une donnée de profil à nos utilisateurs. Nous allons commencer par générer le modèle Profile. Notez le mot-clé References en face de User. Nous indiquons de cette façon à Ruby on Rails que le modèle Profile appartient à User. Grâce à ce mot-clé, Ruby on Rails générera automatiquement la clé étrangère User Underscore ID au sein du modèle Profile. Nous ajoutons également une description, un site et un titre. Enfin, notez comment pour la propriété Country j'ai indiqué la limite à 80 caractères. Exécutons et allons voir le fichier de migration. La ligne particulièrement intéressante ici est T.references user. où nous voyons bien que Ruby on Raise a compris qu'il s'agissait d'ajouter une Foreign key. N'oubliez pas d'exécuter Rake db: migrate. Une fois fait, rendez-vous dans votre modèle Profile. Vous remarquez ici que grâce au mot-clé References, Ruby on Raise a ajouté automatiquement cette ligne Belongs_to :user. Continuons et allons dans le modèle User. Dans celui-ci nous allons préciser que le modèle User has one profile. De cette manière, nous interconnectons les deux modèles User et Profile. Nous allons maintenant nous attaquer aux renseignements des informations de la donnée Profile. Pour ce faire, aller dans la vue Profile.html dans le dossier Users. Nous allons ajouter ici le formulaire d'édition du profil de l'utilisateur. Pour le moment, nous avons ajouter uniquement les champs pour renseigner les informations de notre modèle User. Rien de neuf à ce niveau. Comment faire pour y ajouter des informations incluses dans le modèle Profile ? Il faut utiliser la méthode Simple_fields_for. Si vous utilisiez la méthode basique Form_with de Ruby on Raise, la méthode correspondante se nomme Fields_for. À savoir le même nom, mais sans le mot Simple. Cette méthode est suivi du modèle associé sous forme de symbole. Ici :profile. Le paramètre suivant peut être une donnée d'ores et déjà existante ou initialisée. Notez qu'elle n'est pas obligatoire. Enfin, ici nous avons accès à un nouveau Form builder Il est impératif d'utiliser un nom différent ici de paramètre que celui que vous avez plus haut pour le modèle User. Ensuite, cela fonctionne exactement comme la méthode Simple_Fields_For. À savoir, sur chaque ligne, vous pouvez indiquer un input correspondant à une propriété de Profile. Avant d'aller voir ce que cela donne sur votre site, n'oubliez pas d'initialiser la donnée User au sein de Profile. Il vous faut également ajouter la Root correspondant à la création d'un utilisateur, au sein du fichier Root. Rajoutons du coup l'action correspondante dans le contrôleur Users controler. Pour le moment, ne vous occupez pas de la donnée Profile. Si vous rafraîchissez, vous verrez que cela ne fonctionne toujours pas. C'est lié à la présence de l'input Country ici. Simple_Fields_For cherche en effet à utiliser automatiquement une gemme nommée Country Select. Gemme que voici. Pour l'installer, c'est très simple et classique. Ajoutez à votre Gemfile, faite Bundle Install et relancez votre Server Raise. Cette gemme permettra de générer automatiquement un champ de sélection des pays. Ce champ contiendra déjà l'ensemble des pays existant. Maintenant que tout cela est fait, vous pouvez enfin rafraîchir votre page Profile et voir que cela fonctionne. Vous pouvez d'ailleurs observer le résultat de la gemme Country Select. Pour que le formulaire soit pleinement fonctionnel, il nous reste à effectuer quelques modifications. Rendez-vous dans AutoModel User. Nous pouvons rajouter ici une option : dependent :destroy qui aura pour effet de supprimer la donnée Profile associée à l'utilisateur si jamais nous supprimons l'utilisateur. Pour que le formulaire fonctionne, il faut que nous utilisions la méthode Accepts_nested_attributes_for :profile. Nous indiquons de cette manière à Ruby on Raise que nous aurons des attributs de Profile inclus et modifiables au niveau de formulaire concernant la donnée User. Les dernières modifications sont à réaliser au sein du contrôleur Users_Controller. Il nous faut ici ajouter une initialisation du Profile utilisateur. Pour ce faire, nous avons accès à la méthode build_profile. Cette méthode est générée automatiquement grâce à la méthode has_one que nous avons mise au sein de notre modèle User. Maintenant que c'est chose faite, il nous reste ici à permettre de modifier les attributs de notre donnée Profile. Pour se faire, rajoutez une virgule, puis Profile_attributes, et ouvrez les crochets pour y inscrire ici les différents attributs modifiables de la donnée Profile. Nous avons donc Description. Country, Title, et Website. Voilà qui termine cette vidéo. Le formulaire de création de Profile utilisateur devrait désormais fonctionner. Évidemment, pour le moment, vous devez me croire sur parole étant donné que vous n'avez pas accès aux différents utilisateurs. Vous pourriez cependant le faire vous-même. À savoir un fichier et une liste d'utilisateurs sur une page et pouvoir accéder à chacun des profils.

L'essentiel de Ruby on Rails

Concevez des applications web évolutives et intemporelles avec Ruby on Rails. Installez l’environnement, réalisez un projet de stack overflow, enrichissez-le, etc.

6h08 (85 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !