ユーザ用ツール

サイト用ツール


rails:validation

Validation

メモ

uniqueチェック

uniqueness validation は case_sensitive を false

class User < ActiveRecord::Base
  validates :name, uniqueness: { case_sensitive: false }

とする。

例えばMySQLにnameがHOGEのレコードがあり、Usersテーブルのnameカラムにはuniqueキーがあるとき、nameがhogeというユーザを作ろうとすると

  • Railsは大文字小文字を区別するので hoge は一意性制約チェックをパスする
  • MySQLは大文字小文字を区別しないので hoge は一意性制約によりinsertが失敗して500エラーとなる
rails/validation.txt · 最終更新: 2018/12/21 02:21 by nullpon