새 응용 프로그램 작성 워크플로우

8299 단어 RubyRails

개시하다


최소한의 동작을 하는 새로운 응용 프로그램 제작의 작업 절차를 총괄하고 싶습니다.

새 응용 프로그램을 만들 때의 작업


대략적인 업무는 아래와 같다.
  • 새로운 응용의 기초 구축
  • 모델의 준비
  • 컨트롤러 준비
  • 라우팅의 정의
  • 뷰 준비
  • 모델, 뷰, 컨트롤러 공동 작업
  • 그럼, 나는 각 일을 자세히 볼 것이다.

    새 애플리케이션의 토대 구축


    새 응용 프로그램 만들기


    기초적인 골격을 만들다.
    터미널에서 다음 명령을 실행합니다.
    rails new fruitapp
    
    fritapp는 새 프로그램의 이름입니다.
    Rails의 버전 또는 데이터베이스 유형을 지정하려면 여기서 지정합니다.
    Rails 버전 4.0.5 및 데이터베이스가 MySQL인 경우 다음 명령을 실행합니다.
    rails _4.0.5_ new fruitapp -d mysql
    

    데이터베이스 만들기


    터미널에서 다음 명령을 실행합니다.
    rake db:create
    

    HTTP 서버 시작


    Rails에는 HTTP 서버를 사용할 수 있는 WEBrick이라는 프로그램 라이브러리가 있습니다.
    WEBrick 서버를 시작하려면 애플리케이션 경로 아래에서 다음 명령을 실행합니다.
    rails s
    
    'rails'다음의's'는'server'의 생략입니다.
    'rails 서버'도 같은 결과다.
    서버를 중지하려면 터미널에서 "control + C"를 입력하십시오.

    어플리케이션 액세스


    WEBrick을 시작하면 브라우저에 다음 URL을 입력하여 액세스할 수 있습니다.
    http://localhost:3000/

    기본 Rails 페이지가 표시되면 제대로 작동합니다.
    이로써 새로운 응용 프로그램의 기초 제작이 끝났다.

    모형의 준비


    모델 클래스 생성하기


    데이터베이스에 접근하는 모델 클래스를 만듭니다.
    터미널에서 다음 명령을 실행합니다.
    rails g model fruit name:string
    
    'fruit'부분은 모델명이다.
    "name:string"은 필드 이름과 데이터 형식을 정의합니다.
    명령을 실행하면 다음 파일을 만들 수 있습니다.
  • fruit.rb→모델 클래스
  • 20190810224816_create_fruits.rb → 파일 마이그레이션
  • fruits.yml→파일 수정
  • fruit_test.rb→모델 클래스 테스트용 파일
  • 아직 표 제작이 완료되지 않았다.
    rails에서는 표를 작성하거나 업데이트할 때 이 메커니즘을 사용해야 한다.
    "rails g model fruit name:string"명령에 따라 "db/migrate"폴더에 생성
    마이그레이션 파일을 사용합니다.

    마이그레이션 파일 구조


    생성된 마이그레이션 파일은 다음과 같습니다.
    20190810224816_create_fruits.rb
    class CreateFruits < ActiveRecord::Migration[5.2]
      def change
        create_table :fruits do |t|
          t.string :name
    
          t.timestamps
        end
      end
    end
    
    "creat table:fruits"는 만들 표의 이름을 정의합니다.
    "t.string:name"은 데이터 형식과 열 이름을 정의합니다.
    이전 파일을 다시 쓰면 만들 표를 수정할 수 있습니다.
    20190810224816_create_fruits.rb
    class CreateFruits < ActiveRecord::Migration[5.2]
      def change
        create_table :fruits do |t|
          t.string :name
          t.integer :price # 追加
    
          t.timestamps
        end
      end
    end
    

    마이그레이션 수행


    터미널에서 다음 명령을 실행합니다.
    rake db:migrate
    
    명령을 실행하면 마이그레이션 파일에 따라 테이블이 작성됩니다.
    id
    name
    price
    create_at
    update_at
    ※ 아직 기록되지 않았습니다
    여기까지 모형 준비 끝났습니다.

    컨트롤러 준비


    컨트롤러 클래스 생성


    터미널에서 다음 명령을 실행합니다.
    rails g controller fruits
    
    'rails'다음의'g'는'generate'의 생략이다.
    'rails generate controller frits'결과도 같았다.
    또한 "frits"섹션은 컨트롤러 이름입니다.
    실행 후,frits frutrollers 폴더를 app/controllers로 이동합니다controller.rb 파일을 만듭니다.
    fruits_controller.rb
    class FruitsController < ApplicationController
    end
    

    컨트롤러 클래스에서 동작 정의하기


    동작은 고객의 요청에 대한 집행의 방법이다.
    컨트롤러는 여러 동작을 정의할 수 있습니다.
    컨트롤러에서 index 동작을 정의할 때 다음과 같습니다.
    fruits_controller.rb
    class FruitsController < ApplicationController
      def index
      end
    end
    
    이제 디렉터 준비가 완료되었습니다.

    라우팅 정의


    루트는 고객의 요청에 따라 호출되는 컨트롤러와 동작을 결정합니다.
    라우트는/config/routes.rb 파일에 정의됩니다.
    routes.rb
    Rails.application.routes.draw do
      get 'fruits' => 'fruits#index'
    end
    
    상기 상황에서 "/frits"의 끝에 대한 요청을 정의하고fritss 컨트롤러의 index 동작을 호출합니다.

    뷰 준비


    뷰 베이스


    보기는 고객에게 반환되는 ERB 템플릿입니다.
    템플릿에는 HTML에 Ruby가 포함된 코드가 기술되어 있습니다.
    index.html.erb
    <h1>テスト</h1>
    
    템플릿은 "/app/views"폴더에 파일 이름으로 저장됩니다. 이름은 "컨트롤러 이름/동작 이름.].erb"입니다.
    이번에는 apples 컨트롤러에 대응하는 index 동작의 템플릿이기 때문에 구성은
    “/app/views/fruits/index.erb”.
    여기까지 시야 준비는 끝났습니다.

    모형, 보기, 컨트롤러의 협업


    컨트롤러와 모델의 협업


    데이터베이스 조작을 할 때 컨트롤러 동작에서 모델 유형을 사용하는 방법을 통해 실현할 수 있다.
    fruits_controller.rb
    class FruitsController < ApplicationController
      def index
        fruit = Fruit.find(1)
      end
    end
    
    Frits 모델 클래스에서frits 테이블의 id에서 레코드 1개 얻기
    대입 변수fruit.
    이로써 컨트롤러와 모델의 협업은 끝났다.

    컨트롤러와 뷰의 공동 작업


    템플릿 변수를 사용하여 작업과 뷰에서 데이터를 수신할 수 있습니다.
    템플릿 변수는 컨트롤러에서 @ 템플릿 변수 이름 = 값으로 정의됩니다.
    fruits_controller.rb
    class FruitsController < ApplicationController
      def index
        @fruit  = Fruit.find(1)
      end
    end
    
    정의된 @fruit는 보기에서 "@fruit"로 표시할 수 있습니다.
    index.html.erb
    <%= @fruit.name %>
    <%= @fruit.price %>
    

    이 컨트롤러와 보기의 협업이 끝납니다.

    끝말


    최소한의 동작을 하는 새로운 응용 프로그램 제작의 작업 절차를 총결하였다.
    앱을 만들 때 이 작업 절차를 바탕으로 순조롭게 만들면 좋겠다고 생각했어요.

    좋은 웹페이지 즐겨찾기