[ruby-on-rails] 모델이 이미 존재할 때 ‘레일 생성 스캐 폴드’를 실행하는 방법은 무엇입니까?

Rails를 처음 사용하므로 현재 프로젝트가 이상한 상태입니다.

내가 처음 생성 한 것 중 하나는 “영화”모델이었습니다. 그런 다음 더 자세히 정의하기 시작하고 몇 가지 방법 등을 추가했습니다.

이제 rails generate scaffold라우팅, 뷰, 컨트롤러 등과 같은 것을 연결하기 위해 생성해야한다는 것을 알았 습니다.

스캐 폴딩을 생성하려고했지만 같은 이름의 마이그레이션 파일이 이미 존재한다는 오류가 발생했습니다.

“영화”에 대한 비계를 만드는 가장 좋은 방법은 무엇입니까? (레일 3 사용)



답변

TL; DR :rails g scaffold_controller <name>

이미 모델이 있지만 rails generate옵션 을 사용하여 필요한 컨트롤러 및 마이그레이션 파일을 생성 할 수 있습니다 . 실행 rails generate -h하면 사용 가능한 모든 옵션을 볼 수 있습니다.

Rails:
  controller
  generator
  helper
  integration_test
  mailer
  migration
  model
  observer
  performance_test
  plugin
  resource
  scaffold
  scaffold_controller
  session_migration
  stylesheets

모델에 대한 컨트롤러 스캐 폴드를 생성하려면을 참조하십시오 scaffold_controller. 명확성을 위해 여기에 대한 설명이 있습니다.

스캐 폴딩 된 컨트롤러와 해당 뷰를 스터브합니다. 모델 이름 CamelCased 또는 under_scored와 뷰 목록을 인수로 전달하십시오. 제어기 이름은 복수 버전의 모델 이름으로 검색됩니다.

모듈 내에 컨트롤러를 생성하려면 모델 이름을 ‘parent_module / controller_name’과 같은 경로로 지정하십시오.

앱 / 컨트롤러에서 컨트롤러 클래스를 생성하고 도우미, 템플릿 엔진 및 테스트 프레임 워크 생성기를 호출합니다.

리소스를 생성하려면 resource생성기를 사용하고 마이그레이션을 생성하려면 migration생성기를 볼 수도 있습니다 (이 광기에 패턴이 있음 참조). 이들은 누락 된 파일을 작성하여 자원을 빌드하는 옵션을 제공합니다. 또는 옵션을 rails generate scaffold사용하여 --skip존재하는 파일을 건너 뛸 수 있습니다. 🙂

발전기 내부의 옵션을 살펴 보는 데 시간을 할애하는 것이 좋습니다. 그것들은 내가 책과 같은 것들에 아주 잘 기록되어 있다고 생각하지 않지만 매우 편리합니다.


답변

에 의해 큰 대답 Lee Jarvis, 이것은 단지 명령입니다; 이미 User라는 기존 모델이 있습니다.

rails g scaffold_controller User


답변

기존 데이터베이스로 rails 앱을 시작하는 사람들 schema_to_scaffold에게는 스캐 폴드 스크립트를 생성하는 멋진 gem이 있습니다. 출력 :

rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string

당신의에서 schema.rb우리의 당신의 이름이 바뀐 schema.rb. 확인이


답변

에서 레일 오 , 당신은 여전히 실행할 수 있습니다

$rails generate scaffold movie --skip

누락 된 비계 파일을 모두 만들거나

rails generate scaffold_controller Movie

컨트롤러를 작성하고보기 만합니다.

더 나은 설명을 원하시면 레일 스캐 폴드를 확인하십시오


답변

이 명령은 트릭을 수행해야합니다.

$ rails g scaffold movie --skip


답변

모델 scaffold_controller을 사용 하고 전달해야 attributes합니다. 그렇지 않으면 속성없이 스캐 폴드가 생성됩니다.

rails g scaffold_controller User name email
# or
rails g scaffold_controller User name:string email:string

이 명령은 다음 파일을 생성합니다.

create  app/controllers/users_controller.rb
invoke  haml
create    app/views/users
create    app/views/users/index.html.haml
create    app/views/users/edit.html.haml
create    app/views/users/show.html.haml
create    app/views/users/new.html.haml
create    app/views/users/_form.html.haml
invoke  test_unit
create    test/controllers/users_controller_test.rb
invoke  helper
create    app/helpers/users_helper.rb
invoke    test_unit
invoke  jbuilder
create    app/views/users/index.json.jbuilder
create    app/views/users/show.json.jbuilder


답변