私はレールチュートリアルに従っており、働くユーザーシステムを持っていますが、私には悩ましいものが1つあります。パスワードとパスワードの確認が保存されずに保存されず、同じことが設定されるためです。Railsチュートリアル - バリデーションを無効にしてユーザーを保存する必要があります
これは痛みです。他の重要なバリデーションをユーザーに追加した場合、これは潜在的に危険です。それで、これに対処する良い方法はありますか?実際には、自分のコードからではなく、ユーザーからの更新が行われている場合にのみ検証を適用したいと考えています。
したがって、ユーザーモデルは、このあります
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.
あなたのシナリオをもう少し詳しく説明してください。パスワードを作成する前にユーザーを作成しようとしていますか?または、新しいデータが保存されるたびにシステムがパスワードを確認しますか?あるいは私が言及していない他の状況? –
私はこれをより良く説明するために編集しました。 – Jords