私は Rails のチュートリアルに従っており、ユーザー システムが機能していますが、1 つの問題があります。ユーザーを保存するときは、コンソールだけでも、パスワードとパスワードの確認の両方が保存されていないと保存されないため、検証をオフにする必要があります。同じものに設定します。
これは苦痛であり、他の重要な検証をユーザーに追加すると潜在的に危険に思えます。それで、これに対処する良い方法はありますか?本当に、更新が自分のコードからではなく、ユーザーからのものである場合にのみ検証を適用したいのです。
したがって、ユーザーモデルには次のものがあります。
validates :password, length: { minimum: 6 }
has_secure_password # this does the hashing, comparisions, etc for us.
validates :password_confirmation, presence: true
これは、ユーザーが作成されたとき、およびパスワードを再度入力する必要があるため、ユーザーが自分のプロファイルを編集しているときにうまく機能します。しかし、他の編集の場合、それは面倒です。例えば:
user = User.find_by_name("bob")
user.reputation = 200
user.save(validate: false) # I really don't want to have to care about password validations here.