Как мне поменять 'рельсы генерируют'? - PullRequest
446 голосов
/ 12 ноября 2010

т.е. удалить все созданные файлы и откатить все внесенные изменения? Не обязательно для БД, но больше для файлов конфигурации.

например. автоматическое удаление всех сопоставлений ресурсов для модели / контроллера, удаленных в файле rout.rb и везде, где могли быть внесены изменения?

Спасибо.

Ответы [ 18 ]

885 голосов
/ 12 ноября 2010
rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho

Rails 3.2 добавляет в команду новый ярлык d, поэтому теперь вы можете написать:

rails d controller lalala
rails d model yadayada
rails d scaffold hohoho
45 голосов
/ 12 декабря 2014

Стоит упомянуть флаг -p здесь (p для притворства).

Если вы добавите это в команду, она просто выполнит «тестовый» прогон и покажет вам, какие файлы будут удалены без фактического удаления.

$ 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

Если вы довольнызапустите команду снова без флага -p.

22 голосов
/ 18 ноября 2011

rails destroy controller Controller_name возвращал кучу ошибок. Чтобы иметь возможность уничтожить контроллер, мне пришлось удалить связанные маршруты в маршрутах. Постскриптум Я использую рельсы 3.1

12 голосов
/ 12 ноября 2010

Используете ли вы контроль версий (Subversion, Git, что угодно)? Просто вернитесь. Если нет - почему нет? !!

10 голосов
/ 14 февраля 2014

Это прототип для генерации или уничтожения контроллера или модели в рельсах.

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

например, если вам нужно сгенерировать пользовательский контроллер

rails generate controller User

или

rails g controller User

если хотите уничтожить пользовательский контроллер или вернуться к вышеуказанным действиям тогда

rails destroy controller User

или

rails d controller User

enter image description here

4 голосов
/ 07 июня 2013

Вы можете использовать rails d model/controller/migration ... для уничтожения или удаления изменений, сгенерированных с помощью команды rails generate.

Пример: rails g model Home name:string создает модель с именем home с атрибутом name.Чтобы удалить файлы и код, сгенерированный из этой команды, мы можем использовать команду rails d model Home.

3 голосов
/ 19 марта 2014

вы можете вернуть ваш rails g/generate controller/model/migration xxx вывод, используя:

 rails d/destroy controller/model/migration xxx
3 голосов
/ 01 октября 2015

Если вы предпочитаете удалить контроллер вручную:

Для контроллера 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 голосов
/ 22 декабря 2017

Предположим, я создал контроллер с именем sample вроде

rails generate controller sample

Если мне нужно уничтожить этот контроллер, все, что мне нужно сделать, это поменять генерировать на уничтожить , как в

rails destroy controller sample.

Если вы хотите изменить поколение, все, что вам нужно сделать, это поменять ' generate ' на ' destroy '

2 голосов
/ 04 января 2019

Вы можете уничтожить все вещи, которые были созданы таким же образом, кроме мелочей. Для контроллера

rails d controller_name (d stands for destroy)

Для модели

rails d model_name

Вы просто поместили d(destroy) вместо g(generate) в своей миграции.

...