Rails를 통한 작업 관리 애플리케이션 생성4

8259 단어 RubyRails

미션 관리 앱 같이 만들자(계속)


1. 오프닝


1. 전제, 사전 작업


  • 이쪽 투고.의 컨텐츠 사전 구축
  • 예제포인트 설치의 베껴쓰기

  • #13 데이터 저장 시도부터 실시
  • 2. 데이터 저장 시도

  • POSTprojects#create와 같은 동작으로 등록

  • 놀다
  • ruby(before)
    class ProjectsController < ApplicationController
    
    
      # indexアクションを追加
      def index
        # @をつけた変数はviewでそのまま使用可能
        # Projectの全データを引っ張ってくる
        @projects = Project.all
      end
    
      # showアクションを追加
      def show
        @project = Project.find(params[:id])
      end
    
      # newアクションを追加
      def new
        @project = Project.new
      end
    
    
    end
    
    ruby(after)
    class ProjectsController < ApplicationController
    
    
      # indexアクションを追加
      def index
        # @をつけた変数はviewでそのまま使用可能
        # Projectの全データを引っ張ってくる
        @projects = Project.all
      end
    
      # showアクションを追加
      def show
        @project = Project.find(params[:id])
      end
    
      # newアクションを追加
      def new
        @project = Project.new
      end
    
      # createアクションを追加
      def create
        # Formからの入力値を受け取る
        @project = Project.new(project_params)
        # データの保存
        @project.save
        # HOMEへ移動
        redirect_to projects_path
      end
    
      # project_params を定義
      private
        def project_params
          # projectでわたってきたもののうち、titleだけ使用
          params[:project].permit(:title)
      end
    
    
    end
    

    ↓ 입력 및 버튼 누르기

    3. Validation 설정

  • 데이터 추가 시 체크
  • Model에서 검증

  • 놀다
  • ruby(before)
    class Project < ActiveRecord::Base
    end
    
    ruby(after)
    class Project < ActiveRecord::Base
      # 必須制御
      # 「project」を未入力の状態では保存できなくなる
      validates :title, presence: true
    end
    
  • 위의 경우 입력하지 않은 상태로 저장하지 않지만 오류 메시지가 표시되지 않으므로 Controller에 오류 제어를 추가합니다.

  • 놀다
  • 소스가 길어졌으니 비포어, 애프터로 쓰지 마세요.
  • ruby
    class ProjectsController < ApplicationController
    
    
      # indexアクションを追加
      def index
        # @をつけた変数はviewでそのまま使用可能
        # Projectの全データを引っ張ってくる
        @projects = Project.all
      end
    
      # showアクションを追加
      def show
        @project = Project.find(params[:id])
      end
    
      # newアクションを追加
      def new
        @project = Project.new
      end
    
      # createアクションを追加
      def create
        # Formからの入力値を受け取る
        @project = Project.new(project_params)
        # データの保存
        if @project.save
          # saveがtrueだったらHOMEへ移動
          redirect_to projects_path
        else
          # saveがfalseだったら入力フォームに戻る
          render 'new'
        end
      end
    
      # project_params を定義
      private
        def project_params
          # projectでわたってきたもののうち、titleだけ使用
          params[:project].permit(:title)
      end
    
    end
    
    
  • 이것은 아래의 제어입니다.
  • 저장 성공 -> HOME
  • 로 이동
  • 저장 실패 다시 표시 -> 입력 폼
  • 좋은 웹페이지 즐겨찾기