Est-il possible de “annuler” les effets d’une commande d’échafaudage dans Rails?
Tout d’abord , 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 avez pu apporter manuellement.
Rishav Rastogi a raison, et avec les rails 3.0 ou plus, son:
les rails génèrent un échafaudage ...
les rails détruisent l'échafaud ...
Vous pouvez annuler ce que vous avez fait avec
rails generate xxx
Par
rails destroy xxx
Par exemple, cela applique des générateurs à la migration, à l’échafaud, au modèle, etc.
Si vous voulez simplement voir les fichiers créés par un générateur, vous pouvez passer l’option generator –pretend ou -p.
Le meilleur moyen est:
destroy rake db: rake db:rollback
Pour échafaudage:
rails destroy scaffold Name_of_script
rails d scaffold
Veillez également à annuler la migration que vous avez effectuée soit par restauration, soit vers une version particulière.
pour la première fois, vous pouvez vérifier la migration de votre firebase database si vous avez généré un échafaudage. vous devez les détruire pour nettoyer votre firebase database
rake db:rollback
puis
rails d scaffold
Pour générer des échafaudages:
rails generate scaffold xyz
Pour annuler l’échafaudage:
rails destroy scaffold xyz
Les rails détruisent le nom
rake db:rollback
il faut aussi revenir sur les migrations après avoir détruit un échafaudage
rails destroy scaffold 'scaffoldname' rake db:rollback
Pour générer un échafaudage dans des rails –
rails generate scaffold MODEL_GOES_HERE
Pour annuler l’échafaudage dans les rails –
rails destroy scaffold MODEL_GOES_HERE
Donc, processus que vous devez suivre pour annuler les échafaudages dans les rails 4. Exécutez la commande comme ci-dessous:
rails d scaffold FooBar
rake db:rollback
si you_had_run_ rake db:migrate
après avoir créé l’échafaudage ci-dessus? C’est tout!
À votre santé!
utilisez ceci
rails d scaffold MODEL_NAME rake db:rollback
Vous devez d’abord faire le rake db: rollback pour détruire la table
si vous avez déjà exécuté rake db: migrez et vous pourrez alors exécuter
rails d échafaudage modèle
Recommander le retour en arrière Tout d’abord, tapez votre terminal.
rake db:rollback
Ajouter détruire l’échafaud (le «d» signifie «détruire»)
rails d scaffold name_of_scaffold
Profitez de votre code
Vous devez d’abord annuler les migrations en effectuant rake db: rollback le cas échéant Et ensuite détruire l’échafaud en
rails d scaffold foo
Lorsque nous générons un échafaudage, les fichiers suivants seront créés:
Commande: les 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 scaffold supprimera également le fichier de migration et nous ne pourrons pas annuler cette migration.
Si nous avons exécuté la migration:
rake db:rollback
et après cela, nous pouvons retirer l’échafaud en toute sécurité.
rails d scaffold Game
Cette commande supprimera tous les fichiers créés par l’échafaud dans votre projet.
Chaque fois que vous exécutez des rails g
, vous pouvez les inverser en exécutant rails d
(détruire) pour supprimer ce que vous avez généré. Si vous avez déjà lancé rake db:migrate
, vous devrez lancer 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:ssortingng address:text
mais jusqu’à présent, vous n’avez pas exécuté de commande pour la migration comme
rake db:migrate
alors vous devriez avoir besoin d’exécuter seulement cette commande comme –
rails destroy scaffold User name:ssortingng address:text
Cas 2: Si vous exécutez déjà (échafaudage et migration) par les commandes ci-dessous comme –
rails generate scaffold User name:ssortingng address:text rake db:migrate
Ensuite, vous devez exécuter la première commande de migration de restauration, puis détruire l’échafaud comme ci-dessous –
rake db:rollback rails destroy scaffold User name:ssortingng address:text
Ainsi, nous pouvons annuler les échafaudages. Nous pouvons également utiliser d pour détruire et g pour générer un raccourci.
Oui, l’ scaffold
lui-même et toutes les choses qui le fusionnent.
La commande destroy
est l’opposé de generate
et va en défaire une. Il suffit de passer le nom de la même manière que pour generate
et il sera supprimé de votre projet:
rails generate scaffold posts title:ssortingng content:text rails destroy scaffold posts title:ssortingng content:text
Pour générer l’échafaud:
rails generate scaffold abc
Pour revenir sur cet échafaud:
rails destroy scaffold abc
Si vous avez exécuté la migration pour cela, 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
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
annuler l’échafaud
rake db:rollback git reset --hard git clean -f -d
rails [option] échafaudage nom_échafaud
Option
g generate d destroy
Si tu fais
rails g scaffold myFoo
Puis retournez-le en utilisant
rails d scaffold MyFoo