新規登録時のテストを異常系のテスト実装していた時の疑問です。
単体テスト作成時validateでnicknameの空登録やパスワードの空登録や文字数制限はしましたが、e-mailについて制限した記述をした記憶が全くないのに気づきました。
設定のないもの(ルール?)についてのテストなど意味がないと思い調べました。
けつろん、設定ありました。
解答
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, `rgb(`:validatable
has_many :tweets
has_many :comments
validates :nickname, presence: true, length: { maximum: 6 }
end
installしたdeviseの中のvalidatableというGemモジュールにメール登録2重を禁止が設定してあったようです。
(詳細)//////////////////////////////////////////////////
deviseの使い方
devise gemはモジュールの概念に基づいて作成されています。
deviseは大きく10のモジュールから構成されています。
1.Database Authenticatable
2.Registerable
3.Validatable
4.Recoverable
5.Rememberable
6.Confirmable
7.Lockable
8.Timeoutable
9.Trackable
10.Omniauthable
3.Validatable
ユーザーの電子メールとパスワードに関して必要な全ての検証を作成する。
デフォルトではemailのフォーマットに関するバリデーションと、パスワードの長さに関するバリデーションを設定できる。
デフォルト設定の詳細については以下
email 1. 存在すること 2. 一意であること 3. @を含むこと
password 1. 存在すること 2. 6文字以上128文字以下であること
e-mailの一意であることが「二重登録禁止」にあたります。