Est-il possible d’annuler les effets d’une commande d’échafaudage dans Rails?
First, si vous avez déjà exécuté les migrations générées par la commande scaffold
, vous devez d'abord effectuer une restauration.
rake db:rollback
Vous pouvez créer un échafaudage en utilisant:
Rails generate scaffold MyFoo
(ou similaire), et vous pouvez détruire/annuler en utilisant
Rails destroy scaffold MyFoo
Cela supprimera tous les fichiers créés par generate
, mais pas les modifications supplémentaires que vous auriez apportées manuellement.
Rishav Rastogi a raison, et avec Rails 3.0 ou supérieur, son:
Les rails génèrent un échafaudage ...
Les rails détruisent un échafaudage ...
Vous pouvez annuler ce que vous avez fait avec
Rails generate xxx
Par
Rails destroy xxx
Par exemple, cela applique les générateurs à la migration, l’échafaudage, le modèle, etc.
Si vous voulez seulement voir les fichiers créés par un générateur, vous pouvez passer l’option --pretend ou -p du générateur.
Le meilleur moyen est:
destroy rake db: rake db:rollback
Pour l'échafaudage:
Rails destroy scaffold Name_of_script
pour la première fois, vous pouvez vérifier votre migration de base de données si vous avez généré un échafaudage. vous devez les détruire pour nettoyer votre base de données
rake db:rollback
ensuite
Rails d scaffold
Rails d scaffold <scaffoldname>
Assurez-vous également d'annuler la migration que vous avez effectuée, soit par restauration, soit vers une version particulière.
Les rails détruisent le nom
rake db:rollback
Pour générer un échafaudage:
Rails generate scaffold xyz
Pour retourner un échafaudage:
Rails destroy scaffold xyz
Pour générer un échafaudage dans Rails -
Rails generate scaffold MODEL_GOES_HERE
Pour annuler un échafaudage dans Rails -
Rails destroy scaffold MODEL_GOES_HERE
Recommander rollback Tout d'abord, tapez votre terminal.
rake db:rollback
Ajouter un échafaudage de destruction (le "d" signifie "détruire")
Rails d scaffold name_of_scaffold
Profitez de votre code.
vous devez aussi annuler les migrations après avoir détruit l'échafaud
Rails destroy scaffold 'scaffoldname'
rake db:rollback
Alors, procédez comme suit pour annuler l’échafaudage dans Rails 4. Exécutez la commande comme ci-dessous:
Rails d scaffold FooBar
rake db:rollback
si vous_a_troit _rake db:migrate
après avoir créé l'échafaud ci-dessus?C'est ça!
À votre santé!
Rails [option] échafaudage nom_échafaudage
Option
g generate
d destroy
Si tu fais
Rails g scaffold myFoo
Puis retournez en utilisant
Rails d scaffold MyFoo
Oui, la scaffold
elle-même et toutes les choses qui l'amalgament.
La commande destroy
est l'opposé de generate
et en annule une. Il suffit de lui donner le nom de la même façon que pour generate
et il sera supprimé de votre projet:
Rails generate scaffold posts title:string content:text
Rails destroy scaffold posts title:string content:text
vous devez d'abord restaurer les migrations en faisant rake db: annuler le cas échéant et ensuite détruire l'échafaud par
Rails d scaffold foo
Vous devez d’abord faire le rake db: rollback pour détruire la table
si vous avez déjà exécuté rake db: migrate et vous pouvez alors exécuter
Modèle d'échafaudage Rails
fournisseur une autre solution basée sur git
démarrer un nouveau projet
Rails new project_name
cd project_name
initialiser git
git init
git commit -m "initial commit"
créer un échafaud
Rails g scaffold MyScaffold
rake db:migrate
faire reculer l'échafaud
rake db:rollback
git reset --hard
git clean -f -d
utilisez ceci
Rails d scaffold MODEL_NAME
rake db:rollback
Pour générer l'échafaudage:
Rails generate scaffold abc
Pour retourner cet échafaudage:
Rails destroy scaffold abc
Si vous avez exécuté la migration, il vous suffit de revenir en arrière
rake db:rollback STEP=1
Rails g scaffold MyFoo
pour générer et
Rails d scaffold MyFoo
pour enlever
Chaque fois que vous exécutez Rails g
, vous pouvez l'inverser en exécutant Rails d
(détruire) pour supprimer ce que vous avez généré. Si vous avez déjà exécuté rake db:migrate
, vous devrez exécuter rake db:rollback
avant de détruire :)
Cas 1: Si vous exécutez uniquement cette commande pour générer un échafaudage -
Rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - Rails generate scaffold User name:string address:text
mais jusqu'à présent, vous n'avez exécuté aucune commande de migration comme
rake db:migrate
alors vous devriez avoir besoin d'exécuter seulement cette commande comme -
Rails destroy scaffold User name:string address:text
Cas 2: Si vous avez déjà exécuté (échafaud et migration) avec les commandes ci-dessous, comme -
Rails generate scaffold User name:string address:text
rake db:migrate
Ensuite, vous devriez avoir besoin d'exécuter la première commande d'annulation de migration puis de détruire l'échafaud comme ci-dessous -
rake db:rollback
Rails destroy scaffold User name:string address:text
Ainsi, de cette manière, nous pouvons annuler un échafaudage. Nous pouvons aussi utiliser d pour détruire et g pour générer comme raccourci.
Lorsque nous générons un échafaudage, les fichiers suivants seront créés:
Commande: Rails generate scaffold Game
Fichiers créés:
> invoke active_record
> create db/migrate/20160905064128_create_games.rb
> create app/models/game.rb
> invoke test_unit
> create test/models/game_test.rb
> create test/fixtures/games.yml
> invoke resource_route
> route resources :games
> invoke inherited_resources_controller
> create app/controllers/games_controller.rb
> invoke erb
> create app/views/games
> create app/views/games/index.html.erb
> create app/views/games/edit.html.erb
> create app/views/games/show.html.erb
> create app/views/games/new.html.erb
> create app/views/games/_form.html.erb
> invoke test_unit
> create test/controllers/games_controller_test.rb
> invoke helper
> create app/helpers/games_helper.rb
> invoke test_unit
> create test/helpers/games_helper_test.rb
> invoke jbuilder
> create app/views/games/index.json.jbuilder
> create app/views/games/show.json.jbuilder
> invoke assets
> invoke coffee
> create app/assets/javascripts/games.js.coffee
> invoke scss
> create app/assets/stylesheets/games.css.scss
> invoke scss
> create app/assets/stylesheets/scaffolds.css.scss
Si nous avons exécuté la migration après cela, nous devons d'abord annuler la migration, car la suppression de l'échafaudage supprimera également le fichier de migration et nous ne pourrons pas annuler cette migration.
Dans le cas où nous avons exécuté la migration:
rake db:rollback
et après cela, nous pouvons retirer l’échafaudage en toute sécurité avec cette commande.
Rails d scaffold Game
Cette commande supprimera tous les fichiers créés par l'échafaud dans votre projet.