私のUser
モデルには以下が含まれています:
validates :password_digest, :presence => true, :message => "The password has to be 6 or more characters long"
def password=(password)
self.password_digest = BCrypt::Password.create(password) if password.length >= 6
end
問題は、 が機能message
してvalidates
いないことです。Unknown validator: 'MessageValidator'
エラーが発生します。presence
検証が機能する方法は、password_digest
がnil
であるかどうかをチェックするだけでpassword
、長さが 6 未満であると仮定しました。私が試みたように、エレガントなソリューションが必要です。私はこれを1つの方法で解決しましたが、私がしようとしていることがうまくいかない理由と、それをうまく機能させる方法があることを理解していただければ幸いです.
私が仕事をするようになったのは:
validate do |user|
user.errors['password'] = "can't be less than 6 characters" if user.password_digest.nil?
end