Je trouve difficile de voir facilement quels attributs / propriétés existent sur toutes mes classes de modèle car ils ne sont pas explicitement définis dans mes fichiers de classe.
Pour découvrir les attributs du modèle, je garde le fichier schema.rb ouvert et je passe de celui-ci au code que j'écris au besoin. Cela fonctionne mais est maladroit car je dois basculer entre la lecture du fichier de schéma pour récupérer les attributs, le fichier de classe de modèle pour vérifier les méthodes et tout nouveau code que j'écris pour appeler des attributs et des méthodes.
Ma question est la suivante: comment découvrez-vous les attributs d'un modèle lorsque vous analysez une base de code Rails pour la première fois? Gardez-vous le fichier schema.rb ouvert tout le temps, ou existe-t-il un meilleur moyen qui n'implique pas de sauter constamment entre le fichier de schéma et le fichier de modèle?
Réponses:
Pour les éléments liés au schéma
Pour les variables / attributs d'instance dans un objet AR
Par exemple les méthodes sans héritage de la super classe
la source
Model.attribute_names
.Il existe un plugin de rails appelé Annoter les modèles, qui générera vos attributs de modèle en haut de vos fichiers de modèle, voici le lien:
https://github.com/ctran/annotate_models
pour garder l'annotation synchronisée, vous pouvez écrire une tâche pour régénérer les modèles d'annotation après chaque déploiement.
la source
Si vous êtes uniquement intéressé par les propriétés et les types de données de la base de données, vous pouvez utiliser
Model.inspect
.Alternativement, après avoir exécuté
rake db:create
etrake db:migrate
pour votre environnement de développement, le fichierdb/schema.rb
contiendra la source faisant autorité pour votre structure de base de données:la source
Pour décrire le modèle, j'utilise l'extrait suivant
Encore une fois, c'est si vous cherchez un joli papier pour vous décrire
ActiveRecord
sans que vous ayez besoin de migrer ou de sauter ce développeur avant que vous n'ayez été assez gentil pour commenter les attributs.la source
Source: blog
la source