Como reverter uma 'geração de trilhos'


471

Desejo excluir todos os arquivos criados e reverter as alterações feitas, mas não necessariamente no banco de dados, mas mais nos arquivos de configuração.

Gostaria de excluir automaticamente todos os mapeamentos de recursos para o modelo / controlador excluído no arquivo routes.rb e em qualquer outro lugar em que as alterações possam ter sido feitas?

Respostas:


929
rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho

O Rails 3.2 adiciona um novo datalho ao comando, então agora você pode escrever:

rails d controller lalala
rails d model yadayada
rails d scaffold hohoho

1
Btw, como uso esse comando para excluir um andaime? O modelo e o controlador funcionam bem ... mas como faço para reverter completamente um andaime?
Marcamillion 12/11/2010

6
Ok, eu descobri. Talvez eu estivesse digitando algo errado. Eu apenas corri rails destroy scaffold lalalale isso funcionou.
Marcamillion 12/11/2010

38
@marcamillion Deve ter sido esse 'L' extra.
28512 variat

1
Que tal remover arquivos associados a uma instalação gem, comorails generate <gemname>:install
doug

2
@ Doug, eu não acho que isso é possível. Sua melhor aposta é apenas executar novamente o gerador com a -fbandeira para forçá-lo a recriar / reeditar os arquivos ... Então você pode ver quais arquivos ele criou / alterou e continuar excluindo-os manualmente.
Fábio Batista

49

Vale mencionar a -pbandeira aqui ("p" para fingir ).

Se você adicionar isso ao comando, ele simplesmente executará um "teste" e mostrará quais arquivos serão excluídos sem realmente excluí-los.

$ 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

Se você estiver satisfeito com isso, execute o comando novamente sem a -pbandeira.


Eu acho que essa é a melhor resposta
Emil Rena Enriquez

24

rails destroy controller Controller_nameestava retornando um monte de erros. Para poder destruir o controlador, tive que remover rotas relacionadas em routes.rb. PS estou usando trilhos 3.1


Não resuma suas ações, a menos que você pretenda que esta resposta seja a resposta correta selecionada.
o homem de lata

11

Este é um protótipo para gerar ou destruir um controlador ou modelo no Rails:

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

Por exemplo, se você precisar gerar um Controlador de Usuário:

rails generate controller User

ou

rails g controller User

Se você deseja destruir o controlador do usuário ou reverter para a ação acima, use:

rails destroy controller User

ou:

rails d controller User

insira a descrição da imagem aqui


4

Você pode usar rails d model/controller/migration ...para destruir ou remover as alterações geradas usando o rails generatecomando

Por exemplo:

rails g model Home name:string

cria um modelo chamado homecom o atributo name. Para remover os arquivos e o código gerado a partir desse comando, podemos usar

rails d model Home

3

Você pode destruir todas as coisas criadas da mesma maneira, exceto pequenas mudanças. Para o controlador,

rails d controller_name (d stands for destroy)

Para o modelo

rails d model_name

você acabou de colocar em d(destroy)vez de g(generate)na sua migração.


3

Se você preferir excluir o controlador manualmente:

Para controlador 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

Você pode reverter sua

rails g/generate controller/model/migration xxx

saída usando:

 rails d/destroy controller/model/migration xxx

3

Suponha que eu criei um controlador chamado "sample" como:

rails generate controller sample

Se eu tiver que destruir este controlador, tudo o que tenho a fazer é trocar generatecom destroy, como em

rails destroy controller sample.

Se você quiser reverter a geração, tudo que você tem a fazer é trocar generatecom destroy.


3

Se você usa Rails, use rails d controller Users.

E, se você usa Zeus, use zeus d controller Users.

Por outro lado, se você estiver usando git ou SVN, reverta suas alterações com o número de confirmação. Isso é muito mais rápido.


3

Você pode desfazer um rails generatedas seguintes maneiras:

  • Para o modelo: rails destroy MODEL
  • Para o controlador: rails destroy controller_name

1

Para reverter isso, nós apenas a destruímos. Abra o aplicativo Terminal e vá para o diretório do projeto e digite este:

rails destroy model CamelCase
rails destroy controller CamelCase

Onde CamelCaseé o nome de qualquer modelo ou controlador. Ele removerá o modelo, a migração e alguns dos arquivos de teste relacionados. (Você pode ver o resultado na janela Terminal depois de executar o comando.)


0

Usamos gerar como rails generate app. Portanto, a regeneração de qualquer generateinstrução pode ser revertida usando a destroyinstrução Basta substituir generatepor destroy ie rails generate apppode ser escrito como os rails destroy app' trilhos geram ____ astrilhos destroem ____ `


0

Andaimes removidos para o modelo selecionado:

bin/rails d scaffold <AccessControl> //model name

0

Antes de reverter rails generate, certifique-se de reverter a migração primeiro.

Caso 1: se você deseja reverter o andaime, execute este comando:

rails destroy scaffold MODEL_NAME

Caso 2: se você deseja reverter o modelo, execute este comando:

rails destroy model MODEL_NAME

Caso 3: se você deseja reverter o controlador, execute este comando:

rails destroy controller CONTROLLER_NAME

Nota: você também pode usar o atalho em dvez de destroy.


0

Para reverter rails generate, use rails destroy:

rails destroy Model

Veja " rails destroy" para mais informações.


0

Todas as versões dos trilhos têm um "destroy"; portanto, se você criar um andaime (por exemplo) chamado "tasks" usando um gerador, para destruir todas as alterações dessa etapa de geração, será necessário digitar:

rails destroy scaffold Tasks

Espero que ajude você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.