Je suis nouveau chez Rails donc mon projet actuel est dans un état bizarre.
L'une des premières choses que j'ai générées a été un modèle "Movie". J'ai ensuite commencé à le définir plus en détail, j'ai ajouté quelques méthodes, etc.
Je réalise maintenant que j'aurais dû le générer avec rails generate scaffold
pour connecter des choses comme le routage, les vues, le contrôleur, etc.
J'ai essayé de générer l'échafaudage mais j'ai eu une erreur disant qu'un fichier de migration avec le même nom existe déjà.
Quelle est la meilleure façon pour moi de créer des échafaudages pour mon "film" maintenant? (en utilisant les rails 3)
Réponses:
TL; DR :
rails g scaffold_controller <name>
Même si vous avez déjà un modèle, vous pouvez toujours générer les fichiers de contrôleur et de migration nécessaires en utilisant l'
rails generate
option. Si vous exécutez,rails generate -h
vous pouvez voir toutes les options disponibles.Si vous souhaitez générer un échafaudage de contrôleur pour votre modèle, voir
scaffold_controller
. Pour plus de clarté, voici la description à ce sujet:Pour créer votre ressource, vous utiliseriez le
resource
générateur, et pour créer une migration, vous pouvez également voir lemigration
générateur (voyez, il y a un modèle à toute cette folie). Ceux-ci fournissent des options pour créer les fichiers manquants pour créer une ressource. Sinon, vous pouvez simplement exécuterrails generate scaffold
avec l'--skip
option pour ignorer tous les fichiers qui existent :)Je recommande de passer un peu de temps à regarder les options à l'intérieur des générateurs. C'est quelque chose que je ne pense pas être extrêmement bien documenté dans les livres et autres, mais ils sont très pratiques.
la source
rails generate scaffold_controller MyModel
génère la couche de vue, mais elle n'inclut pas les attributs du modèle (colonnes de table) et vous devez les ajouter à la main. Quelqu'un connaît un correctif pour cela? Je suis sur Rails 3.2.8.generate scaffold
si vous avez un modèle mais vous voulez un contrôleur d'échafaudage et de nouveaux attributs ajoutés au modèle que vous voulezscaffold_generator
suivi parmigration
les champs que vous modifiezExcellente réponse
Lee Jarvis
, c'est juste la commande par exemple; nous avons déjà un modèle existant appelé Utilisateur:la source
Pour ceux qui démarrent une application rails avec une base de données existante, il y a un petit bijou cool appelé
schema_to_scaffold
pour générer un script d'échafaudage. il génère:de votre
schema.rb
notre votre renomméschema.rb.
Vérifiez-lela source
Dans Rails 5 , vous pouvez toujours exécuter
pour créer tous les fichiers d'échafaudage manquants ou
pour créer le contrôleur et afficher uniquement.
Pour une meilleure explication, consultez l' échafaudage des rails
la source
Cette commande devrait faire l'affaire:
la source
Vous pouvez utiliser
scaffold_controller
et ne pas oublier de passer leattributes
modèle, sinon l'échafaudage sera généré sans les attributs.Cette commande générera les fichiers suivants:
la source