'레일 생성'을 되 돌리는 방법


471

생성 된 모든 파일을 삭제하고 변경 사항을 롤백하고 데이터베이스는 아니지만 구성 파일에 더 많이 롤백하려고합니다.

route.rb 파일에서 삭제 된 모델 / 컨트롤러 및 변경 사항이있을 수있는 모든 리소스 매핑을 자동으로 삭제하고 싶습니다.

답변:


929
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

1
Btw, 비계를 삭제하려면이 명령을 어떻게 사용합니까? 모델과 컨트롤러는 잘 작동하지만 비계를 어떻게 완전히 뒤집을 수 있습니까?
marcamillion

6
알았어 어쩌면 나는 무언가를 잘못 이해했을 것입니다. 방금 달려서 rails destroy scaffold lalalal효과가있었습니다.
marcamillion

38
@marcamillion 그 여분의 'L'이었던 것 같습니다.
varatis 2016 년

1
rails generate <gemname>:install
doug

2
@doug, 나는 그것이 가능하지 않다고 생각합니다. 가장 좋은 방법은 -f파일을 재생성 / 재 편집하도록 플래그로 생성기를 다시 실행하는 것입니다 ... 그런 다음 생성 / 변경된 파일을보고 수동으로 삭제를 진행할 수 있습니다.
Fábio Batista

49

-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플래그 없이 명령을 다시 실행하십시오 .


이것이 가장 좋은 답변이라고 생각합니다
Emil Reña Enriquez

24

rails destroy controller Controller_name많은 오류를 반환했습니다. 컨트롤러를 파괴 할 수 있도록 routes.rb에서 관련 경로를 제거해야했습니다. PS 난 레일을 사용하고 있습니다 3.1


이 답변이 선택된 정답이 되려는 경우가 아니라면 작업을 요약하지 마십시오.
Tin Man

11

레일스에서 ​​컨트롤러 또는 모델을 생성하거나 파괴하는 프로토 타입입니다.

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

예를 들어, 사용자 컨트롤러를 생성해야하는 경우 :

rails generate controller User

또는

rails g controller User

사용자 컨트롤러를 파괴하거나 위의 조치로 되돌리려면 다음을 사용하십시오.

rails destroy controller User

또는:

rails d controller User

여기에 이미지 설명을 입력하십시오


4

rails d model/controller/migration ...을 사용하여 생성 된 변경 사항을 삭제하거나 제거하는 데 사용할 수 있습니다 .rails generate명령 .

예를 들면 다음과 같습니다.

rails g model Home name:string

homeattribute로 이름이 지정된 모델을 작성 합니다 name. 해당 명령에서 생성 된 파일과 코드를 제거하기 위해 사용할 수 있습니다

rails d model Home

3

작은 것 변경을 제외하고 동일한 방식으로 만들어진 모든 것을 파괴 할 수 있습니다. 컨트롤러의 경우

rails d controller_name (d stands for destroy)

모형을 위해

rails d model_name

마이그레이션 d(destroy)대신에 넣습니다 g(generate).


3

컨트롤러를 수동으로 삭제하려는 경우 :

컨트롤러 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

당신은 되돌릴 수 있습니다

rails g/generate controller/model/migration xxx

다음을 사용하여 출력하십시오.

 rails d/destroy controller/model/migration xxx

3

"sample"이라는 컨트롤러를 다음과 같이 생성했다고 가정합니다.

rails generate controller sample

이 컨트롤러를 파괴 해야하는 경우 generatedestroy같이 스왑 만하면 됩니다.

rails destroy controller sample.

생성을 되돌리려면으로 교체하기 만하면 generate됩니다 destroy.


3

Rails를 사용하는 경우 rails d controller Users .

제우스를 사용한다면 zeus d controller Users .

반면에 git 또는 SVN을 사용하는 경우 커밋 번호를 사용하여 변경 사항을 되 돌리십시오. 이것은 훨씬 빠릅니다.


3

rails generate다음과 같은 방법으로 a 를 취소 할 수 있습니다 .

  • 모델의 경우 : rails destroy MODEL
  • 컨트롤러의 경우 : rails destroy controller_name

1

그것을 뒤집기 위해 우리는 그것을 파괴합니다. 터미널 애플리케이션을 열고 프로젝트 디렉토리로 이동 한 후 다음을 입력하십시오.

rails destroy model CamelCase
rails destroy controller CamelCase

CamelCase모델 또는 컨트롤러의 이름은 어디에 있습니까 ? 모델, 마이그레이션 및 일부 관련 테스트 파일이 제거됩니다. 명령을 실행 한 후 터미널 창에 결과가 표시됩니다.


0

우리는 generate를 사용합니다 rails generate app. 따라서 generate명령문을 사용하여 destroy명령문 재생성을 취소 할 수 있습니다 . 그냥 교체 generatedestroyrails generate app같이 쓸 수있다 rails destroy app' 레일 생성 ____ as`____ 레일이 파괴



0

를 되돌리기 전에 마이그레이션rails generate롤백해야합니다. 먼저 .

사례 1 : 비계를 되돌리려면 다음 명령을 실행하십시오.

rails destroy scaffold MODEL_NAME

사례 2 : 모델을 되돌리려면이 명령을 실행하십시오.

rails destroy model MODEL_NAME

사례 3 : 컨트롤러를 되돌리려면이 명령을 실행하십시오.

rails destroy controller CONTROLLER_NAME

참고 : d대신 단축키를 사용할 수도 있습니다 destroy.


0

반대로하려면 다음을 rails generate사용하십시오 rails destroy.

rails destroy Model

자세한 내용은 " rails destroy"를 참조하십시오.


0

모든 버전의 레일에는 "파괴"가 있으므로 생성기를 사용하여 "작업"이라는 비계를 생성하는 경우 해당 생성 단계의 모든 변경 사항을 제거하려면 다음을 입력해야합니다.

rails destroy scaffold Tasks

그것이 당신을 돕기를 바랍니다.

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