web-dev-qa-db-fra.com

Comment inverser une 'génération de Rails'?

c’est-à-dire supprimer tous les fichiers qu’il a créés et annuler toutes les modifications apportées? Pas nécessairement à la base de données, mais plus aux fichiers de configuration.

Par exemple. supprimer automatiquement tous les mappages de ressources pour le modèle/contrôleur supprimés dans le fichier routes.rb et partout où des modifications auraient été apportées?

Merci.

432
marcamillion
Rails destroy controller lalala
Rails destroy model yadayada
Rails destroy scaffold hohoho

Rails 3.2 ajoute un nouveau raccourci d à la commande, vous pouvez donc écrire:

Rails d controller lalala
Rails d model yadayada
Rails d scaffold hohoho
869
Fábio Batista

Il convient de mentionner le -p flag ici (p pour faire semblant). 

Si vous ajoutez ceci à la commande, il effectuera simplement un test et montrera quels fichiers seront supprimés sans les supprimer.

$ Rails d controller welcome -p

  remove  app/controllers/welcome_controller.rb
  invoke  erb
  remove    app/views/welcome
  invoke  test_unit
  remove    test/controllers/welcome_controller_test.rb
  invoke  helper
  remove    app/helpers/welcome_helper.rb
  invoke    test_unit
  remove      test/helpers/welcome_helper_test.rb
  invoke  assets
  invoke    coffee
  remove      app/assets/javascripts/welcome.js.coffee
  invoke    scss
  remove      app/assets/stylesheets/welcome.css.scss

Si cela vous convient, réexécutez la commande sans l'indicateur -p.

40
Maikon

Rails destroy controller Controller_name retournait un tas d'erreurs. Pour pouvoir détruire le contrôleur, j'ai dû supprimer les routes associées dans routes.rb. P.S. J'utilise Rails 3.1

22
Maikel

Utilisez-vous le contrôle de version (Subversion, git, peu importe)? Reviens juste. Si non - pourquoi pas? !!

12
davmac

Il s'agit d'un prototype permettant de générer ou de détruire un contrôleur ou un modèle dans Rails.

Rails generate/destroy controller/model [controller/model Name]

par exemple, si vous devez générer un contrôleur d’utilisateur 

Rails generate controller User

ou

Rails g controller User

si vous voulez détruire le contrôleur utilisateur ou revenir à l'action ci-dessus alors 

Rails destroy controller User

ou

Rails d controller User

enter image description here

10
uma

Vous pouvez utiliser Rails d model/controller/migration ... pour détruire ou supprimer les modifications générées à l'aide de la commande Rails generate.

Exemple: Rails g model Home name:string crée un modèle nommé home avec l'attribut name. Pour supprimer les fichiers et le code générés à partir de cette commande, nous pouvons utiliser la commande Rails d model Home.

4
kishore

Pour supprimer le contrôleur manuellement, au cas où la commande Rails d controller ne fonctionnerait pas:

Pour le contrôleur welcome

rm app/controllers/welcome_controller.rb
rm app/views/welcome
rm test/controllers/welcome_controller_test.rb
rm app/helpers/welcome_helper.rb
rm test/helpers/welcome_helper_test.rb
rm app/assets/javascripts/welcome.js.coffee
rm app/assets/stylesheets/welcome.css.scss
3
Patrick_870206

Supposons que j'ai créé un contrôleur nommé sample comme

Rails generate controller sample

Si je dois détruire ce contrôleur, tout ce que je dois faire est d’échanger le générer avec détruire , comme dans 

Rails destroy controller sample.

Si vous voulez inverser la génération, tout ce que vous avez à faire est d’échanger le ' générer ' avec ' détruire '

3
L11

vous pouvez rétablir votre sortie Rails g/generate controller/model/migration xxx en utilisant:

 Rails d/destroy controller/model/migration xxx
3
user3412661

Vous pouvez détruire toutes les choses qui ont été créées de la même manière, sauf un petit changement.

Rails d controller_name (d stands for destroy)

Pour modèle

Rails d model_name

vous venez de mettre d(destroy) au lieu de g(generate) dans votre migration.

2
Foram Thakral

Si vous utilisez Rails, utilisez Rails d controller Users

et si vous utilisez zeus, utilisez zeus d controller Users. Par contre, si vous utilisez git ou SVN, annulez vos modifications avec le numéro de validation. C'est beaucoup plus rapide.

2
Santanu

Vous pouvez annuler une génération de Rails de différentes manières:

  • Pour le modèle: Rails destroy MODEL 
  • Pour le contrôleur: Rails destroy controller_name
2
Vipul Lawande

Pour inverser cela, nous le détruisons simplement. Ouvrez l'application Terminal et allez dans le répertoire du projet. Ensuite, tapez ceci:

Rails destroy model CamelCase
Rails destroy controller CamelCase

Où CamelCase est le nom d’un modèle ou d’un contrôleur . Il supprimera le modèle, la migration et certains fichiers de test associés. (Vous pouvez voir le résultat sur le terminal après avoir exécuté la commande.) 

1
Chutipong Roobklom

Toutes les générations de Rails sont détruites. Ainsi, si vous créez par générateur un échafaudage nommé "tâches", pour détruire tous les changements de cette organisation, vous devrez taper:

Rails destroy scaffold Tasks

J'espère que ça vous aide.

0
Flautarian

Échafaudage retiré du modèle sélectionné

bin/Rails d scaffold <AccessControl> //model name
0
Dinesh Vaitage

pour inverser la génération de Rails, utilisez Rails destroy

Rails destroy Model

https://guides.rubyonrails.org/command_line.html#Rails-destroy

0
purge

Nous utilisons générer en tant que Rails generate app. Ainsi, la régénération d’une instruction generate peut être inversée à l’aide de destroy instruction . Il suffit de remplacer generate par destroy. Rails generate app peut être écrit en tant que Rails destroy app' Rails génère ____asRails détruit ____ `

0
Krishnaraj R

Avant de revenir en arrière sur le Rails generate, assurez-vous d’abord de annuler la migration.

Cas 1: si vous voulez rétablir l’échafaudage, exécutez cette commande -

Rails destroy scaffold MODEL_NAME

Cas 2: si vous souhaitez rétablir le modèle, exécutez cette commande -

Rails destroy model MODEL_NAME

Cas 3: si vous voulez restaurer le contrôleur, exécutez cette commande -

Rails destroy controller CONTROLLER_NAME

Remarque: vous pouvez également utiliser le raccourci d au lieu de destroy

0
Manoj Kumar