【Rails】一意性を保つバリデーションの実装
1464 ワード
一意性バリデーションの実装に必要なタスク
- アプリ側に記述(uniqueness: true)
- データベース側に記述(unique: true)
アプリ側に記述
models/user.rb
validates :email, uniqueness: true
データベース側に記述
$ rails g migration add_column_to_users
add_column_to_users.rb
def change
add_index :users, :email, unique: true
end
$ rails db:migrate
models/user.rb
validates :email, uniqueness: true
データベース側に記述
$ rails g migration add_column_to_users
add_column_to_users.rb
def change
add_index :users, :email, unique: true
end
$ rails db:migrate
$ rails g migration add_column_to_users
add_column_to_users.rb
def change
add_index :users, :email, unique: true
end
$ rails db:migrate
テーブルのカラムに一意性を持たせるには、インデックスの作成も必要になる。
理由は、全てのデータを検索することで、過去のデータと重複しているか確認できるため。
Author And Source
この問題について(【Rails】一意性を保つバリデーションの実装), 我々は、より多くの情報をここで見つけました https://qiita.com/beanzou/items/dee423185cd4856b82fe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .