Il est important de comprendre l'utilisation des rails générateurs d'échafaudages et d'être conscient de leurs limites. L'échafaudage vous aide à faire fonctionner quelque chose rapidement et à tester une hypothèse. Mais dans le monde réel, il ne vous mènera pas très loin. Disons que vous avez créé un modèle avec un échafaudage
rails generate scaffold Article title:string body:text
Super ! Vous avez maintenant un prototype prêt. Mais disons maintenant que vous devez ajouter un autre champ "auteur".
rails generate migration add_to_article_author author:string
rake db:migrate
Maintenant, la table articles a une nouvelle colonne mais les fichiers dans /app/views/articles sont dans le même état, c'est-à-dire que le formulaire n'aura pas de champ auteur, etc. Si vous exécutez à nouveau Scaffold
rails generate scaffold Article title:string author:string body:text --skip-migration
Cette fois, vous avez ajouté --skip-migrate parce que cela a déjà été fait auparavant et que Rails se plaindrait vraiment si vous deviez migrer à nouveau la même table. Maintenant, Scaffold va vous demander d'écraser le fichier qu'il a créé la première fois. L'écrasement détruira également toutes les modifications apportées à votre contrôleur /app/controllers/article_controller.rb ou aux fichiers de vues comme /app/views/article/show.html.erb ou index.html.erb.
Étant donné que toute application Rails digne de ce nom comporte du code personnalisé (et non du code passe-partout créé par Scaffold), un programmeur Rails ne devrait utiliser Scaffold que pour tester une idée. Utilisez Scaffold pour donner à votre client quelque chose avec lequel jouer. Mais dans le monde réel, le code standard de Scaffold n'est pas utilisé.
0 votes
J'ai cherché toutes les réponses mais je n'ai pas assez de raisons pour dire "N'utilisez pas d'échafaudage", juste quelques conseils si vous décidez de l'utiliser.