2011-04-10 3 views
44

rails generate 명령을 사용하여 뷰를 개별적으로 생성 할 수 있습니까? 나는 또한 그 일을 성취하기 위해 기꺼이 보석을 설치할 것입니다. 기본적으로 스캐 폴딩 명령은 너무 많은 것을 주었고 컨트롤러를 손으로 코딩하려고합니다. 그러나 레코드에 대한 테이블이있는 인덱스 뷰를 작성하는 것은 그리 효율적이지 않습니다.Ruby on Rails 뷰 생성

+0

이 꽤 많은 열을 쓰기 큰 테이블이기 때문에 그 손 레일 발전기의 목적의 일부를 물리 칠 것 같다 의해 –

+2

http://stackoverflow.com/questions/8114866/create-rails-views-only-after-controllers-and-models-are-already-created의 가능한 복제본 - 귀하의 질문이 단지 * * 생성 된 뷰는 이미 존재하는 어떤 것도 건드리지 않고 아래의 해답은 실제로 성취되지 않습니다. – sameers

답변

69

컨트롤러 생성기를 사용하면 컨트롤러 동작과보기가 생성됩니다.

rails g controller controllername new create 

이렇게하면 관련보기가있는 새 작업 및 만들기 동작이 만들어집니다.

이렇게하면 수동으로 경로를 설정해야합니다.

+0

뷰를 생성하기 위해 모델/컨트롤러를 어떻게 지정합니까? – Noz

+0

컨트롤러에 대한보기가 생성됩니다. 'rails g controller pages to contact' 파일은'controllers/pages_controller.rb','views/pages/about.html.erb','views/pages/contact.html.erb' 파일을 만듭니다. – Gazler

+5

만약 내가 원한다면 기존 컨트롤러에 액션을 추가하고 뷰 페이지를 자동으로 만들길 원합니다. –

2

첫 번째 부분은 모델/컨트롤러의 이름이고 두 번째 부분은 작업입니다.

0

특정 상황은 기존 컨트롤러에 보기를 추가하려는 경우입니다.

그런 경우 일반 명령을 사용하면되지만 기존 파일을 덮어 쓰지 않으려면 메시지가 나타날 때마다 'n'이 표시됩니다.

예를 들어, 뷰를 추가하면 'projects'라는 기존 컨트롤러에 'invite'라고 :

[email protected]:~/railsapps/project_manager$ rails -v 
Rails 5.1.4 
[email protected]:~/railsapps/project_manager$ rails generate controller projects invite 
Running via Spring preloader in process 46253 
    conflict app/controllers/projects_controller.rb 
Overwrite /home/smith/railsapps/project_manager/app/controllers/projects_controller.rb? (enter "h" for help) [Ynaqdh] n 
     skip app/controllers/projects_controller.rb 
     route get 'projects/invite' 
     invoke erb 
     exist app/views/projects 
     create app/views/projects/invite.html.erb 
     invoke test_unit 
    conflict test/controllers/projects_controller_test.rb 
    Overwrite /home/smith/railsapps/project_manager/test/controllers/projects_controller_test.rb? (enter "h" for help) [Ynaqdh] n 
     skip test/controllers/projects_controller_test.rb 
     invoke helper 
    identical app/helpers/projects_helper.rb 
     invoke test_unit 
     invoke assets 
     invoke coffee 
    identical  app/assets/javascripts/projects.coffee 
     invoke scss 
    conflict  app/assets/stylesheets/projects.scss 
    Overwrite /home/smith/railsapps/project_manager/app/assets/stylesheets/projects.scss? (enter "h" for help) [Ynaqdh] n 
     skip  app/assets/stylesheets/projects.scss 
[email protected]:~/railsapps/project_manager$