레일에서 스캐 폴딩 실행 취소


493

Rails에서 비계 명령의 효과를 '실행 취소'할 수있는 방법이 있습니까?


4
레일 발판 XXX를 파괴
로빈 Garg를에게

1
Rails 5 : 다음을 사용하여 스캐 폴드 생성 : $ rails generate scaffold <name>. 파일을 마이그레이션 한 경우 롤백을 수행하십시오 ( $ rake db : rollback) . 다음을 사용하여 스캐 폴드를 삭제하거나 실행 취소하십시오. $ rails destroy scaffold <name>. 이에 대한 자세한 내용은
Nesha Zoric의

답변:


777

먼저 , scaffold명령으로 생성 된 마이그레이션을 이미 실행 한 경우 먼저 롤백을 수행해야합니다.

rake db:rollback

다음을 사용하여 스캐 폴딩을 만들 수 있습니다.

rails generate scaffold MyFoo 

(또는 유사한), 당신은 그것을 사용하여 그것을 파괴 / 취소 할 수 있습니다

rails destroy scaffold MyFoo

이 파일은에 의해 생성 된 모든 파일을 삭제 generate하지만 수동으로 추가 한 변경 사항은 없습니다.


11
rake db:rollback비계를 파괴하기 전에 잊지 마십시오. 스캐 폴드 이전의 마이그레이션 외에 다른 마이그레이션이없는 경우 테이블이 삭제 / 삭제됩니다.
야콥 우바이 디

3
경우에 따라 비계에서 삭제되지 않은 남은 파일이 여전히 남아 있습니다. destroy 명령이 누락 되었는지 확인하려면 버전 제어 (예 : git status및 / 또는 git diff)를 확인하십시오.
aaron-coding

1
rake db : migrate를 실행 한 후에 다른 마이그레이션을 수행 한 후에는 스캐 폴드를 "파기"하기 전에 테이블을 파괴하는 마이그레이션을 만드는 것이 좋습니다. rails g migration DropMyFoos와 같은 작업을 수행 한 다음 마이그레이션 파일을 열고 테이블을 삭제하기위한 코드를 추가하십시오. 이 마이그레이션을 실행 한 후 destroy scaffold를 실행하십시오.
Vikram Sharma

또한 추가 파일이 있어도 my_foo의보기 폴더가 제거됩니다.
Andrew K

167

Rishav Rastogi가 옳고 레일 3.0 이상인 경우 :

레일은 비계를 생성합니다 ...
레일은 비계를 파괴 ...

8
@femi 테이블은 갈퀴로 만들어졌습니다. 그것을 제거하는 가장 좋은 방법은 rake db:rollback이전 에 실행 중이 rails destroy scaffold거나 마지막으로 실행 된 것이 아닌 경우 db:migrate:down VERSION=20080906120000db / migrate에서 이름 앞에있는 번호를 찾을 수 있습니다.
Travis Pessetto

40

당신이 한 모든 것을 취소 할 수 있습니다

rails generate xxx

으로

rails destroy xxx

예를 들어 이것은 생성기를 마이그레이션, 발판, 모델 등에 적용합니다.


13

생성기가 생성 할 파일 만 보려면 generator --pretend 또는 -p 옵션을 전달하면됩니다.


10

가장 좋은 방법은

destroy rake db:  rake db:rollback

비계의 경우 :

rails destroy scaffold Name_of_script

8
rails d scaffold <scaffoldname>

또한 롤백 또는 특정 버전으로 마이그레이션을 실행 취소해야합니다.


8

처음으로 스캐 폴드를 생성 한 경우 데이터베이스 마이그레이션을 확인할 수 있습니다. 당신은 당신의 데이터베이스를 정리하기 위해 그들을 파괴해야

rake db:rollback

그때

rails d scaffold

4

스캐 폴딩을 생성하려면

rails generate scaffold xyz

비계를 되돌리려면 :

rails destroy scaffold xyz

4

레일은 이름을 파괴

rake db:rollback

1
첫째 롤백 (마이그레이션 한 경우), 다음 발판을 파괴
gavit

3

레일에서 비계를 생성하는 경우-

rails generate scaffold MODEL_GOES_HERE

레일의 비계를 취소하려면-

rails destroy scaffold MODEL_GOES_HERE

2
또한 바로 가기 rails grails d.
steve klein

2

비계를 파괴 한 후에도 마이그레이션을 롤백해야합니다.

rails destroy scaffold 'scaffoldname'
rake db:rollback

2

따라서 레일에서 스캐 폴딩을 취소하기 위해 따라야하는 프로세스 4. 다음과 같이 명령을 실행하십시오.

  1. rails d scaffold FooBar
  2. rake db:rollbackrake db:migrate위의 스캐 폴드를 생성 한 후 you_had_run_이라면 ?

그게 다야!

건배!


2

롤백 권장 먼저 터미널에 입력하십시오.

rake db:rollback

파괴 비계 추가 ( 'd'는 '파괴'를 나타냄)

rails d scaffold name_of_scaffold

코드를 즐기십시오.


1

이것을 사용하십시오

rails d scaffold MODEL_NAME

rake db:rollback

1

먼저 rake db : migrate 를 실행 한 다음 실행할 수있는 경우 테이블을 제거하기 위해 rake db : rollback 을 수행해야합니다 .

레일 d 비계 모델


1

rake db : rollback (있는 경우)을 수행하여 마이그레이션을 먼저 롤백해야합니다.

rails d scaffold foo

1

그렇습니다. 그 scaffold자체와 그것을 합병시키는 모든 것.

destroy명령은 정반대이며 generate실행 취소합니다. 같은 방식으로 이름을 전달하면 generate프로젝트에서 제거됩니다.

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

1

스캐 폴드를 생성하려면

rails generate scaffold abc

이 스캐 폴드를 되돌리려면 :

rails destroy scaffold abc

마이그레이션을 실행 한 경우 롤백

rake db:rollback STEP=1

1

자식을 기반으로 다른 솔루션 제공

새로운 프로젝트를 시작하다

rails new project_name
cd project_name

자식 초기화

git init
git commit -m "initial commit"

발판을 만들다

rails g scaffold MyScaffold
rake db:migrate

발판을 롤백

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

1

레일 [옵션] 발판 발판 _ 이름

선택권

g    generate
d    destroy

당신이 할 경우

rails g  scaffold myFoo

그런 다음 사용하여 다시 되돌립니다.

rails d scaffold MyFoo

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

이 명령은 프로젝트의 스캐 폴드에 의해 생성 된 모든 파일을 제거합니다.


0

를 실행할 때마다 (파기)를 rails g실행 rails d하여 생성 한 것을 제거 하여 역순으로 되돌릴 수 있습니다 . 이미 실행 한 경우 다음을 제거 하기 전에 rake db:migrate실행해야합니다. rake db:rollback:)


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 : 이미 다음과 같은 명령으로 (Scaffold and 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 에 대한 생성 바로 가기로.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.