>

Ruby on Rails 5를 사용하여 API를 만들려고 노력 중입니다. 새 버전이므로 비계를 사용하여 테이블을 생성하여 여행을위한 기본 테이블

class CreateTrips < ActiveRecord::Migration[5.2]
  def change
    create_table :trips do |t|
      t.string :nameOfDriver
      t.string :status
      t.timestamps
    end
  end
end

이것은 컨트롤러의 업데이트 기능입니다

def update
  if @trip.update(trip_params)
    render json: @trip
 else
  render json: @trip.errors, status: :unprocessable_entity
 end
end

제한을 "완료"또는 "진행 중"상태로 먼저 추가하려고합니다 ... "완료된 경우 두 번째 확인" "진행 중"으로 변경할 수 없습니다

전체 프로젝트를위한이 링크 https://github.com/gnik2036/RubyTask

  • 답변 # 1

    class Trip < ApplicationRecord
      TRIP_STATUSES = %w[completed ongoin].freeze
      INVALID_STATUS_CHANGES = [%w[completed ongoin]].freeze
      validate :status_validity, on: :update
      validates :status, presence: true, inclusion: { in: TRIP_STATUSES }
      private
      def status_validity
        return unless status_changed?
        if INVALID_STATUS_CHANGES.include? status_change
          errors.add(:status, "Cannot be changed from #{status_was} to #{status}.")
        end
      end
    end
    
    

관련 자료

  • 이전 Java LinkedList의 소스 코드에 빈 생성자가 있습니다
  • 다음 storyboard - Apple의 홈 화면처럼 UIView 만들기