Отменить строительные леса в Rails

416

Есть ли способ "отменить" действие команды scaffold в Rails?

  • 4
    рельсы разрушают эшафот ххх
  • 1
    В Rails 5: Генерация скаффолда с помощью: $ rails генерирует скаффолд <имя>. Если вы перенесли файлы, выполните откат: $ rake db: rollback . Уничтожить или отменить помост с помощью: $ rails уничтожить помост <имя>. Вы можете прочитать больше об этом на
Теги:
scaffolding

24 ответа

700
Лучший ответ

Сначала, если вы уже выполнили миграцию, сгенерированную командой scaffold, сначала необходимо выполнить откат.

rake db:rollback

Вы можете создавать строительные леса, используя:

rails generate scaffold MyFoo 

(или аналогичный) и вы можете уничтожить/отменить, используя

rails destroy scaffold MyFoo

Это приведет к удалению всех файлов, созданных с помощью generate, но никаких дополнительных изменений, которые вы, возможно, сделали вручную.

  • 10
    не забывайте rake db:rollback прежде чем уничтожить свой эшафот. Это уничтожит / отбросит таблицу, если не будет никакой другой миграции, кроме миграции лесов.
  • 3
    В некоторых случаях все еще существуют оставшиеся файлы, которые не были удалены с эшафот. Проверьте свой контроль версий, например, git status и / или git diff , чтобы увидеть, пропустила ли команда destroy что-нибудь.
Показать ещё 3 комментария
171

Ришав Растоги прав, а с рельсами 3.0 или выше его:

rails generate scaffold ...
rails destroy scaffold ...
  • 8
    @femi Стол был сделан с граблями. Лучший способ удалить его - запустить rake db:rollback до того, как rails destroy scaffold или если это не последний использованный вами rake db:migrate:down VERSION=20080906120000 вы можете найти номер перед его именем в db / migrate.
37

Вы можете отменить все, что вы сделали с помощью

rails generate xxx

По

rails destroy xxx

Например, это относится к генераторам для миграции, эшафота, модели... и т.д.

13

Если вы просто хотите увидеть файлы, которые создаст генератор, вы можете передать генератор --pretend или -p.

10

Лучший способ:

destroy rake db:  rake db:rollback

Для леса:

rails destroy scaffold Name_of_script
8
rails d scaffold <scaffoldname>

Кроме того, убедитесь, что вы отменили перенос, сделанный либо откатом, либо определенной версией.

7

в первый раз, вы можете проверить миграцию базы данных, если вы создали эшафот. вы должны уничтожить их, чтобы очистить свою базу данных

rake db:rollback

затем

rails d scaffold
4

Чтобы создать строительные леса:

rails generate scaffold xyz

Чтобы вернуть леса:

rails destroy scaffold xyz
3

Rails destroy name

rake db:rollback
  • 1
    сначала откат (если вы мигрировали), затем уничтожить эшафот
2

Итак, процесс, который вы должны выполнить, чтобы отменить строительные леса в рельсах 4. Выполнить команду, как показано ниже:

  • rails d scaffold FooBar
  • rake db:rollback если you_had_run_ rake db:migrate после создания над эшафотом?

Что это!

Ура!

2

Для создания леса в рельсах -

rails generate scaffold MODEL_GOES_HERE

Для отмены эшафота в рельсах -

rails destroy scaffold MODEL_GOES_HERE
  • 2
    Также ярлыки rails g и rails d .
2

вам нужно также отменить миграцию после разрушения эшафота.

rails destroy scaffold 'scaffoldname'
rake db:rollback
1

Рекомендовать откат Сначала введите свой терминал.

rake db:rollback

Добавить разрушающий эшафот ( "d" означает "уничтожить" )

rails d scaffold name_of_scaffold

Наслаждайтесь своим кодом.

1

Сначала вам нужно выполнить rake db: rollback для уничтожения таблицы
если вы уже запустили rake db: migrate, а затем вы можете запустить

рельсы d эшафот Модель

1

используйте этот

rails d scaffold MODEL_NAME

rake db:rollback
1

вам нужно сначала отменить миграцию, выполнив рейк-дб: откат, если он И затем уничтожить эшафот

rails d scaffold foo
0

rails [option] scaffold scaffold_name

Вариант

g    generate
d    destroy

Если вы делаете

rails g  scaffold myFoo

Затем верните его назад, используя

rails d scaffold MyFoo
0

другое решение на основе git

запустите новый проект

rails new project_name
cd project_name

инициализировать git

git init
git commit -m "initial commit"

создать эшафот

rails g scaffold MyScaffold
rake db:migrate

откат леса

rake db:rollback
git reset --hard
git clean -f -d
0
rails g scaffold MyFoo 

для генерации и

rails d scaffold MyFoo

для удаления

0

Чтобы создать эшафот:

rails generate scaffold abc

Чтобы вернуть этот эшафот:

rails destroy scaffold abc

Если вы выполнили миграцию, просто откат

rake db:rollback STEP=1
0

Случай 1: Если вы запускаете только эту команду для создания эшафота -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

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

но до сих пор вы не запускали какую-либо команду для миграции, например

rake db:migrate

тогда вам нужно будет запускать только эту команду, например -

rails destroy scaffold User name:string address:text

Случай 2: Если вы уже запускали ( "Леса и миграция" ) под следующими командами типа -

rails generate scaffold User name:string address:text

rake db:migrate 

Затем вам нужно будет запустить первую команду миграции откат, а затем уничтожить эшафот, как показано ниже -

rake db:rollback

rails destroy scaffold User name:string address:text

Таким образом, мы можем отменить строительные леса. Кроме того, мы можем использовать d для destroy и g для сгенерировать как ярлык.

0

Да, сам scaffold и все, что объединяет его.

Команда destroy противоположна generate и отменит ее. Просто передайте ему имя так же, как с generate, и оно будет очищено от вашего проекта:

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

При запуске rails g вы можете отменить его, выполнив rails d (destroy), чтобы удалить то, что вы создали. Если вы уже запустили rake db:migrate, вам нужно запустить rake db:rollback до уничтожения:)

0

Когда мы создаем строительные леса, будут созданы следующие файлы:

Команда: rails generate scaffold Game

Созданные файлы:

>       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

Если мы выполнили миграцию после этого, нам нужно сначала отменить миграцию, так как удаление леса также удалит файл миграции, и мы не сможем вернуть эту миграцию.

Если мы выполнили миграцию:

rake db:rollback

и после этого мы можем безопасно удалить эшафот с помощью этого комбата.

rails d scaffold Game

Эта команда удалит все файлы, созданные эшафотом в вашем проекте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню