Tag: Rails/検証
class Person < ActiveRecord::Base validates :name, presence: true end Person.create(name: "John Doe").valid? # => true Person.create(name: nil).valid? # => false
gem "validate_url"
class User < ActiveRecord::Base validates :homepage, url: { allow_blank: true } end
class Invoice < ApplicationRecord validate :expiration_date_cannot_be_in_the_past, :discount_cannot_be_greater_than_total_value def expiration_date_cannot_be_in_the_past if expiration_date.present? && expiration_date < Date.today errors.add(:expiration_date, "過去の日付は使えません") end end def discount_cannot_be_greater_than_total_value if discount > total_value errors.add(:discount, "合計額を上回ることはできません") end end end
../Bootstrapを参照のこと。
# GET /items/new def new @item = Item.new end # GET /items/1/edit def edit end # POST /items # POST /items.json def create @item = Item.new(item_params) respond_to do |format| if @item.save format.html { redirect_to @item, notice: 'Item was successfully created.' } format.json { render :show, status: :created, location: @item } else format.html { render :new } format.json { render json: @item.errors, status: :unprocessable_entity } end end end # PATCH/PUT /items/1 # PATCH/PUT /items/1.json def update respond_to do |format| if @item.update(item_params) format.html { redirect_to @item, notice: 'Item was successfully updated.' } format.json { render :show, status: :ok, location: @item } else format.html { render :edit } format.json { render json: @item.errors, status: :unprocessable_entity } end end end