LoginSignup
0
0

More than 3 years have passed since last update.

一意性制約のバリデーションをかける方法

Posted at

一意性制約とは

 同じデータを保存することができないようすること。

マイグレーションファイルに一意性制約

def change
    create_table :schools do |t|
      t.string :name, null: false
      t.timestamps
    end
    add_index :schools, :name, unique: true
end

add_index :schools, :name, unique: true←この部分が一意性制約
       テーブル名, カラム名

モデルに一意性制約

validates :name, presence: true, uniqueness: { case_sensitive: false }

uniqueness: { case_sensitive: false }←この部分が一意性制約
case_sensitive: falseは大文字・小文字を判別するかどうか。

終わりに

マイグレーションとモデル両方に記述する必要がある。
RSpecを使って、一意性制約のテストをしているが、ずっとエラーが出ていて進まない…

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0