Desfazer andaimes no Rails

493

Existe alguma maneira de 'desfazer' os efeitos de um comando de andaime no Rails?

Daniel
fonte
4
os trilhos destroem o andaime xxx
Robin Garg
1
No Rails 5: gere andaime com: $ rails gere andaime <name>. Se você migrou seus arquivos, execute uma reversão: $ rake db: rollback . Destrua ou desfaça o andaime com: $ rails destroy scaffold <name>. Você pode ler mais sobre isso em
Nesha Zoric

Respostas:

777

Primeiro , se você já executou as migrações geradas pelo scaffoldcomando, precisará executar uma reversão primeiro.

rake db:rollback

Você pode criar andaimes usando:

rails generate scaffold MyFoo 

(ou similar) e você pode destruí- lo / desfazê- lo usando

rails destroy scaffold MyFoo

Isso excluirá todos os arquivos criados por generate, mas não as alterações adicionais que você possa ter feito manualmente.

Rishav Rastogi
fonte
11
Não esqueça rake db:rollbackantes de destruir o seu andaime. Isso destruirá / descartará a tabela se não houver outra migração, exceto a migração do andaime antes dela.
Yakob Ubaidi
3
Em alguns casos, ainda existem arquivos que não foram excluídos do andaime. Verifique seu controle de versão, por exemplo, git statuse / ou git diff, para ver se o comando destroy perdeu alguma coisa.
Aaron-codificante
1
Se você executou o rake db: migrate fez outras migrações depois disso, faz sentido criar uma migração para destruir a tabela antes de "destruir" o andaime. faça algo como o DropMyFoos do rails g migration e abra o arquivo de migração e adicione o código para descartar a tabela. Execute essa migração e, em seguida, execute o andaime de destruição.
precisa saber é o seguinte
Lembre-se também de que ela removerá a pasta view do my_foo, mesmo que você tenha arquivos extras.
Andrew K
167

Rishav Rastogi está certo e, com os trilhos 3.0 ou superior, é:

trilhos geram andaimes ...
trilhos destruir andaime ...
Misha Rabinovich
fonte
8
@femi A mesa foi feita com ancinho. A melhor maneira de removê-lo está sendo executado rake db:rollbackantes rails destroy scaffoldou se não é a última que você fez ancinho db:migrate:down VERSION=20080906120000pode encontrar o número antes de seu nome no db / migrate
Travis Pessetto
40

Você pode desfazer o que fez com

rails generate xxx

De

rails destroy xxx

Por exemplo, isso aplica geradores à migração, andaime, modelo ... etc.

thekindofme
fonte
13

Se você quiser apenas ver os arquivos que um gerador criará, você pode passar a opção --pretend ou -p do gerador.

Sudhanshu Arya
fonte
10

A melhor maneira é:

destroy rake db:  rake db:rollback

Para o andaime:

rails destroy scaffold Name_of_script
user917158
fonte
8
rails d scaffold <scaffoldname>

Além disso, certifique-se de desfazer a migração feita por reversão ou para uma versão específica.

RageCore
fonte
8

pela primeira vez, você pode verificar a migração do banco de dados se tiver gerado andaimes. você deve destruí-los para limpar seu banco de dados

rake db:rollback

então

rails d scaffold
dedennufan
fonte
4

Para gerar andaimes:

rails generate scaffold xyz

Para reverter andaimes:

rails destroy scaffold xyz
uma
fonte
4

Trilhos destroem o nome

rake db:rollback
starbuck
fonte
1
primeira reversão (se você migrou), em seguida, destruir o andaime
gavit
3

Para gerar andaimes em trilhos -

rails generate scaffold MODEL_GOES_HERE

Para desfazer andaimes em trilhos -

rails destroy scaffold MODEL_GOES_HERE
Amit Suroliya
fonte
2
Também atalhos rails ge rails d.
Steve klein
2

você também precisa reverter as migrações depois de destruir o andaime

rails destroy scaffold 'scaffoldname'
rake db:rollback
Bhargav Mehta
fonte
2

Portanto, processo que você deve seguir para desfazer andaimes nos trilhos 4. Execute o comando como abaixo:

  1. rails d scaffold FooBar
  2. rake db:rollbackse you_had_run_ rake db:migratedepois de criar o andaime acima?

É isso aí!

Felicidades!

Manish Shrivastava
fonte
2

Recomende a reversão Primeiro, digite seu Terminal.

rake db:rollback

Adicionar andaime destroy (o 'd' significa 'destroy')

rails d scaffold name_of_scaffold

Aproveite o seu código.

Chutipong Roobklom
fonte
1

usa isto

rails d scaffold MODEL_NAME

rake db:rollback
vipin
fonte
1

Primeiro, você terá que fazer o rake db: rollback para destruir a tabela,
se você já executou o rake db: migrate e poderá executar

trilhos d modelo de andaime

Shoaib Malik
fonte
1

você precisa reverter as migrações primeiro, executando rake db: rollback, se houver. E depois destrua o andaime,

rails d scaffold foo
Manish
fonte
1

Sim, o scaffoldpróprio e todas as coisas que o fundem.

O destroycomando é o oposto generatee desfaz um. Apenas passe o nome da mesma maneira que generateele fez e será removido do seu projeto:

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
JackHasaKeyboard
fonte
1

Para gerar o andaime:

rails generate scaffold abc

Para reverter este andaime:

rails destroy scaffold abc

Se você executou a migração, basta reverter

rake db:rollback STEP=1
nitanshu verma
fonte
1

fornecedor outra solução baseada em git

iniciar um novo projeto

rails new project_name
cd project_name

inicialize o git

git init
git commit -m "initial commit"

criar um andaime

rails g scaffold MyScaffold
rake db:migrate

reverter o andaime

rake db:rollback
git reset --hard
git clean -f -d
Ray Lee
fonte
1

trilhos [opção] scaffold scaffold_name

Opção

g    generate
d    destroy

Se você fizer

rails g  scaffold myFoo

Em seguida, inverta-o novamente usando

rails d scaffold MyFoo
Krishnar
fonte
0

Quando geramos o andaime, os seguintes arquivos serão criados:

Comando: rails generate scaffold Game

Arquivos criados:

>       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

Se executarmos a migração depois disso, primeiro reverteremos a migração, pois a exclusão do andaime também removerá o arquivo de migração e não poderemos reverter essa migração.

Caso tenhamos executado a migração:

rake db:rollback

e depois disso, podemos remover com segurança o cadafalso por esta nômade.

rails d scaffold Game

Este comando removerá todos os arquivos criados pelo andaime no seu projeto.

BIlal Khan
fonte
0

Sempre que você executa rails g, você pode revertê-lo executando rails d(destruir) para remover o que gerou. Se você já executou rake db:migrate, precisará executar rake db:rollbackantes de destruir :)

Maddie
fonte
0

Caso 1: se você executar apenas este comando para gerar o andaime -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

Ex - rails generate scaffold User name:string address:text

mas até agora você não executou nenhum comando para migração como

rake db:migrate

então você deve executar apenas este comando como -

rails destroy scaffold User name:string address:text

Caso 2: se você já executa (Andaime e Migração) pelos comandos abaixo, como -

rails generate scaffold User name:string address:text

rake db:migrate 

Em seguida, você deve executar o primeiro comando de migração de reversão e destruir o andaime como abaixo -

rake db:rollback

rails destroy scaffold User name:string address:text

Assim, podemos desfazer andaimes. Também podemos usar d para destruir e g para gerar como um atalho.

Manoj Kumar
fonte
0
rails g scaffold MyFoo 

para gerar e

rails d scaffold MyFoo

para remover

Ayaz Ahmad Tarar
fonte
E não há necessidade de mencionar os atributos, está correto? Thanks
Shane G