Отменить леса в рельсах

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

24 ответов


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

rake db:rollback

вы можете создать монтаж с помощью:

rails generate scaffold MyFoo 

(или похожие), и вы можете уничтожить/отменить он с помощью

rails destroy scaffold MyFoo

это удалит все файлы, созданные generate, но не любые дополнительные изменения, которые вы могли сделать вручную.


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

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

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

rails generate xxx

By

rails destroy xxx

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


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


лучший способ-это :

destroy rake db:  rake db:rollback

Для Ремонтины:

rails destroy scaffold Name_of_script

rails d scaffold <scaffoldname>

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


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

rake db:rollback

затем

rails d scaffold

для создания леса :

rails generate scaffold xyz

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

rails destroy scaffold xyz

рельсы уничтожить имя

rake db:rollback

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

rails destroy scaffold 'scaffoldname'
rake db:rollback

для генерации ремонтины в рельсах -

rails generate scaffold MODEL_GOES_HERE

для отмены лесов в рельсах -

rails destroy scaffold MODEL_GOES_HERE

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

  1. rails d scaffold FooBar
  2. rake db:rollback если you_had_run_rake db:migrate после создания выше эшафот?

вот именно!

Ура!


использовать

rails d scaffold MODEL_NAME

rake db:rollback

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

рельсы г эшафот модель


рекомендовать откат во-первых, введите терминал.

rake db:rollback

добавить уничтожить эшафот ("d" означает "уничтожить")

rails d scaffold name_of_scaffold

наслаждайтесь кодом.


нужно откатить сначала миграций, делая грабли дБ:откат если А затем уничтожить эшафот

rails d scaffold foo

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

: 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

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

в случае, если мы запустили миграцию:

rake db:rollback

и после этого мы можем безопасно извлечь ремонтину этим комм.

rails d scaffold Game

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


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


Пример 1: если вы запускаете только эту команду для создания scaffold -

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: если вы уже запускаете (Scaffold и Migration) с помощью следующих команд, таких как -

rails generate scaffold User name:string address:text

rake db:migrate 

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

rake db:rollback

rails destroy scaffold User name:string address:text

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


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

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

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

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

rails generate scaffold abc

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

rails destroy scaffold abc

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

rake db:rollback STEP=1

rails g scaffold MyFoo 

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

rails d scaffold MyFoo

для удаления


провайдер другое решение на основе 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

рельсы [опция] scaffold scaffold_name

опции

g    generate
d    destroy

если у вас

rails g  scaffold myFoo

затем отменить его обратно с помощью

rails d scaffold MyFoo