0

ユーザー登録ページがあります。ユーザーパスワードを 4 ~ 16 記号にしたい。少なくとも 1 つの大文字と 1 つの数字があることを確認する必要があります。このパスワードの md5 ハッシュを作成し、データベースに入れています。
どうすれば検証できますか?
パスワードが 32 シンボル長の場合のモデル テストでの検証:

  validates :password, :length => { :minimum => 32 , 
            :message => 'Not an md5 password provided.' }

しかし、パスワードのハッシュを作成し、この検証に適切なエラーを設定する前に、パスワードが要件に一致することを検証するにはどうすればよいでしょうか?
ビューに「少なくとも 1 つの数字が必要」のようなものを含む user.errors[:password] を取得したいと思います。および「少なくとも 1 つの大文字が必要です。」

4

1 に答える 1

2

カスタムバリデーターメソッドを作成して、好きなことを行うことができます。

validate :password_validation

def password_validation
  unless password.length > 32 && ... # other requirements
    errors.add(:password, 'Not an md5 password provided.')
  end
end
于 2013-03-11T19:12:56.990 に答える