ruby on rails 루비 모델이 이미 존재할 때`rails generate scaffold`를 실행하는 방법은 무엇입니까?




루비 온 레일즈 강좌 (5)

기존 데이터베이스가있는 레일 응용 프로그램을 시작하는 사람에게는 scaffold 스크립트를 생성하는 schema_to_scaffold 라는 멋진 보석이 있습니다. 그것은 출력한다 :

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

귀하의 schema.rb 에서 귀하의 이름이 바뀐 schema.rb. 확인해 봐

나는 현재 프로젝트가 이상한 상태에 있기 때문에 Rails를 처음 사용한다.

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

나는 이제 내가 rails generate scaffold 과 함께 라우팅, 뷰, 컨트롤러 등과 같은 것들을 연결할 수있는 rails generate scaffold 를 생성해야한다고 생각한다.

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

지금 내 "영화"를위한 비계를 만드는 가장 좋은 방법은 무엇입니까? (레일 3 사용)


TL, DR : rails g scaffold_controller <name>

이미 모델이 있어도 rails generate 옵션을 사용하여 필요한 컨트롤러 및 마이그레이션 파일을 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'과 같은 경로로 지정하십시오.

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

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

나는 발전기 내부의 옵션을보고 시간을 보내는 것이 좋습니다. 그것들은 내가 책 등에서 매우 잘 문서화되어 있다고 느끼지는 않지만 매우 유용합니다.


Lee Jarvis 위대한 대답, 이것은 단지 명령 일뿐입니다. 우리는 이미 User라는 기존 모델을 가지고 있습니다.

rails g scaffold_controller User

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

Rails 5 에서는 여전히 실행할 수 있습니다.

$rails generate scaffold movie --skip

누락 된 스캐 폴드 파일을 모두 만들거나

rails generate scaffold_controller Movie

컨트롤러 및보기 만 만들 수 있습니다.

레일 비계 체크 아웃에 대한 더 자세한 설명은





ruby-on-rails-3