Pergunta

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

Foi útil?

Solução

Primeiro , se você já tiver executado as migrações gerado pelo comando scaffold, você tem que executar uma reversão em primeiro lugar.

rake db:rollback

Você pode criar andaimes usando:

rails generate scaffold MyFoo 

(ou similar), e você pode destruir / undo -lo usando

rails destroy scaffold MyFoo

Isso irá apagar todos os arquivos criados pelo generate, mas não quaisquer alterações adicionais que você pode ter feito manualmente.

Outras dicas

Rishav Rastogi é certo, e com trilhos de 3,0 ou superior a:

rails generate scaffold ...
rails destroy scaffold ...

Você pode desfazer o que você fez com o

rails generate xxx

Por

rails destroy xxx

Por exemplo, este aplica-se geradores para a migração, andaime, modelo, etc ...

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

A melhor maneira é:

destroy rake db:  rake db:rollback

Para Andaime:

rails destroy scaffold Name_of_script
rails d scaffold <scaffoldname>

Além disso, certifique-se de desfazer a migração você feito por rollback ou para uma versão particular.

pela primeira vez, você pode verificá-lo a migração do banco de dados se você tiver gerar cadafalso. você deve destruí-los para limpar seu banco de dados

rake db:rollback

então

rails d scaffold

Para gerar andaimes:

rails generate scaffold xyz

Para reverter andaimes:

rails destroy scaffold xyz

Rails destruir nome

rake db:rollback

Para andaime de geração em trilhos -

rails generate scaffold MODEL_GOES_HERE

Para andaime desfazer em trilhos -

rails destroy scaffold MODEL_GOES_HERE

você precisa migrações reverter muito depois de destruir andaime demasiado

rails destroy scaffold 'scaffoldname'
rake db:rollback

Assim, processo que você deve seguir para desfazer andaime em trilhos 4. Executar comando como abaixo:

  1. rails d scaffold FooBar
  2. rake db:rollback se you_had_run_rake db:migrate depois de criar acima andaime?

É isso aí!

Felicidades!

Recomendar reversão Primeiro, escreva o seu Terminal.

rake db:rollback

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

rails d scaffold name_of_scaffold

Aproveite o seu código.

Use esta

rails d scaffold MODEL_NAME

rake db:rollback

Primeiro você terá que fazer o rake db: rollback para destruir a mesa
Se você já tiver executado rake db: migrate e, em seguida, você pode executar

trilhos d andaime Modelo

você precisa reverter as migrações primeiro fazendo rake db: rollback se alguma E, em seguida, destruir o andaime por

rails d scaffold foo

Sim, o próprio scaffold e todas as coisas que amalgamar-lo.

O comando destroy é o oposto do generate e irá desfazer um. Basta passar-lhe o nome da mesma forma fez com generate e ele vai ser limpo de seu projeto:

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text

Para gerar o scaffold:

rails generate scaffold abc

Para reverter esta scaffold:

rails destroy scaffold abc

Se você executar a migração para ele apenas rollback

rake db:rollback STEP=1

provedor outra solução baseada em git

iniciar um novo projeto

rails new project_name
cd project_name

initialize git

git init
git commit -m "initial commit"

criar um andaime

rails g scaffold MyScaffold
rake db:migrate

reverter o cadafalso

rake db:rollback
git reset --hard
git clean -f -d

trilhos [opção] andaime scaffold_name

Opção

g    generate
d    destroy

Se você

rails g  scaffold myFoo

Em seguida, revertê-la de volta usando

rails d scaffold MyFoo

Quando geramos andaime, seguintes arquivos serão criados:

Comando: rails generate scaffold Game

Os 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 tivermos executar a migração após isso, então nós temos que reverter a migração primeiro como a supressão do andaime irá remover o arquivo de migração também e nós não será capaz de reverter essa migração.

Incase temos executar a migração:

rake db:rollback

e depois disso podemos remover com segurança do andaime por este commad.

rails d scaffold Game

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

Toda vez que você executar rails g, você pode inverter-lo executando rails d (destruir) para remover o que você gerou. Se você já tiver executado rake db:migrate, você precisará executar rake db:rollback antes de destruir:)

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

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

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

Mas até agora você não executar qualquer comando para a migração como

rake db:migrate

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

rails destroy scaffold User name:string address:text

Caso 2: Se você já executado (Andaime e Migração) por seguir os comandos como -

rails generate scaffold User name:string address:text

rake db:migrate 

Em seguida, você precisa executar primeiro comando de migração rollback depois destruir andaime como abaixo -

rake db:rollback

rails destroy scaffold User name:string address:text

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

rails g scaffold MyFoo 

Para a produção e

rails d scaffold MyFoo

para remover

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top