ユーザ用ツール

サイト用ツール


rails:validation

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
rails:validation [2018/12/20 16:06] – 作成 nullponrails:validation [2018/12/21 02:21] (現在) – [uniqueチェック] nullpon
行 5: 行 5:
 ==== uniqueチェック ==== ==== uniqueチェック ====
  
-Railsはデフォルトで大文字小文字を区別するが、MySQLはデータの大文字小文字を区別しないため、hogeというユーザがいる時にHOGEを作ろうとすると、Railsはuniquenessバリデーションをパスし、MySQLuniqueキー制約でエラーになる。 +uniqueness validation は case_sensitive を false
- +
-Railsもvalidation時に大文字小文字区別しないようにするため、+
  
 <code> <code>
-   validate :name, uniqueness: { case_sensitive: false } +class User < ActiveRecord::Base 
 +  validates :name, uniqueness: { case_sensitive: false }
 </code> </code>
  
 とする。 とする。
  
 +例えばMySQLにnameがHOGEのレコードがあり、Usersテーブルのnameカラムにはuniqueキーがあるとき、nameがhogeというユーザを作ろうとすると
  
-Rails+  * Railsは大文字小文字を区別するので hoge は一意性制約チェックをパスする 
 +  * MySQLは大文字小文字を区別しないので hoge は一意性制約によりinsertが失敗して500エラーとなる
  
rails/validation.1545321972.txt.gz · 最終更新: 2018/12/20 16:06 by nullpon