Question

Depuis le début, Rails a eu des problèmes avec les modèles à espace de noms. Avec le temps, pratiquement tout le monde a cessé de l'utiliser. Moi-même inclus.

Avec Rails 2.3, j'aimerais avoir une mise à jour de la situation. Les questions spécifiques que j'ai à l'esprit sont les suivantes:

  • Tout d'abord, est-ce que c'est bon d'aller?
  • nommer une table, quelle règle suivre?
  • associations, comment les déclarer avec le moins de verbosité? comment nommer les colonnes de clé étrangère?
  • auto-demandant, fonctionne-t-il si vous placez les fichiers de modèle dans un sous-répertoire correspondant à l'espace de noms? ou comment nommer et où placer les fichiers?
  • génération, le générateur de modèle gère-t-il correctement et correctement les espaces de noms?
  • génération, qu'en est-il du générateur d'échafaudage, qui comprend les contrôleurs?
  • des incompatibilités / bizarreries dont il faut être conscient?
Était-ce utile?

La solution

Le meilleur article que j'ai vu sur ce problème provient de Strictement non typé . A ma connaissance, 2.3 n'a résolu aucun problème, ce qui signifie qu'il n'est toujours pas fiable.

Autres conseils

Nous avons récemment eu un grand débat à ce sujet au sein de notre entreprise. Je pense qu'à la fin de la journée, nous avons pensé que, si vous ne pouvez pas utiliser de tables d'espaces de noms dans une base de données, cela n'a aucun sens de créer des espaces de noms. Nous avons choisi de préfixer nos modèles (User, UserAddress, UserEmailAddresses) et de les insérer dans le répertoire des utilisateurs, en utilisant ensuite:

config.load_paths << "#{RAILS_ROOT}/app/models/users"

pour charger les modèles. Pour contrôler la verbosité dans nos modèles, nous le faisons fréquemment:

has_many :addresses, :class_name => "UserAddress"

Lors de la génération, nous le créons comme s'il n'y avait pas d'espace de nom (script / generate model UserAddress), puis nous le copions manuellement dans le répertoire de l'utilisateur.

Shrug. Je suppose qu'en fin de compte, tout cela vous donne vraiment une structure de répertoires plus propre, ce qui est en réalité plus problématique pour un utilisateur de VIM comme moi, mais agréable pour les TextMaters.

Je resterais encore loin de ça. Tout ce que vous aurez gagné (ce que je ne sais pas ce que cela serait honnêtement) serait définitivement perdu si vous considérez les tracas et la perte de brièveté et de clarté de votre code.

Ma dernière application contient 87 ressources et inclut des fonctionnalités d'administration partout. Je ne vois aucun besoin d'espacement de noms, IMHO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top