2010-12-02 6 views
0

Je viens de commencer avec Rails et je viens d'un arrière-plan .net Je trouve que le modèle hérité d'ActiveRecord est difficile à comprendre, car il ne contient pas les attributs correspondants pour le modèle. Je ne peux pas imaginer un nouveau développeur exposé à un grand code où les modèles ne contiennent que des références à d'autres modèles et à la logique métier. De mon point de vue, le modèle DataMapper est beaucoup plus facile à saisir, mais comme ActiveRecord est le standard de facto, il est bizarre de changer l'ORM juste pour ce petit problème.Création de modèles lisibles dans les rails

DataMapper

class Post 
    include DataMapper::Resource 

    property :id,   Serial # An auto-increment integer key 
    property :title,  String # A varchar type string, for short strings 
    property :body,  Text  # A text block, for longer string data. 
    property :created_at, DateTime # A DateTime, for any date you might like. 
end 

ActiveRecord

class Post < ActiveRecord::Base 
end 

Je ne sais pas si cela est un problème et que les gens se habituer aux modèles sans attributs, ou comment ne rails expérimentés utilisateur gérer cela?

Je ne pense pas que l'utilisation du gestionnaire de base de données ou la recherche de nombreux scripts de migration pour trouver les attributs est une option?

Spécifier attr_accessible rendra le modèle plus lisible mais je ne suis pas sûr que ce soit une bonne solution à mon problème?

Répondre

4

Découvrez le plugin annotate_models sur github. Il insérera un schéma commenté pour chaque modèle dans un bloc de commentaire. Il peut être installé pour s'exécuter quand migrate est.

+0

annotate_models est agréable et je vais l'utiliser pour mes modèles. Même si j'aime mieux DataMapper, je m'en tiendrai à ActiveRecord car c'est la valeur par défaut. – orjan

+0

Je suis d'accord avec grifaton dans la réponse ci-dessous. Votre fichier db/schema.rb est un endroit de facto pour rechercher cette information. Chaque projet que j'ai vu en utilisant annotate_models contient des commentaires obsolètes. Les gens oublient d'exécuter la tâche et/ou tombent malades du bruit au sommet des fichiers modèles. –

2

Vous n'avez pas à "regarder les charges de scripts de migration pour trouver les attributs" - elles sont toutes définies dans un seul emplacement dans db/schema.rb.

2

Quelques conseils:

  • charge la console Rails et entrez Post.column_names pour un rappel rapide des noms d'attributs. Post.columns vous donne la colonne objets, ce qui montre les types de données

  • db/schema.rb contient tout le code de migration en un seul endroit, de sorte que vous pouvez facilement voir toutes les colonnes définitions.

  • Si vous utilisez un éditeur décent /IDE il devrait y avoir un moyen de vous permettant de sauter à partir du fichier modèle dans le fichier de migration. (Par exemple avec Emacs ROR ou Rinari)

Questions connexes