1

こんにちは、Ruby on Rails の初心者です。古いパスワードの検証に問題があります。アカウントの編集ページに移動して保存すると、アカウントの編集ページとパスワードの変更ページが異なるページであるにもかかわらず、古いパスワードの検証が表示されますが、1 つのモデルで共有されます。助けてください。

ここに私のモデルがあります:

validates_presence_of :firstname, :message => 'First Name is required'
  validates_format_of :firstname, :with => /\A[a-zA-Z]+([a-zA-Z]|\d)*\Z/, :message => 'First name must not contain special characters'
  validates_presence_of :lastname, :message => 'Last Name is required'
  validates_format_of :lastname, :with => /\A[a-zA-Z]+([a-zA-Z]|\d)*\Z/, :message => 'Lastname name must not contain special characters'
  validates_presence_of :email, :message => 'Email Address is required'
  validates_uniqueness_of :email, :message => 'Email address is already taken, please select a new one'
  validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => "Please enter a valid email address"
  validates_presence_of :username, :message => 'Username is required'
  validates_uniqueness_of :username, :message => 'Username is already taken, please select a new one'
  validates_length_of :username, :within => 3..15, :message => "Username must be at least 3 - 15 characters in length", :on => :create


  validates_presence_of :password_old, :on => :update, :message => "Old password is required"

さらに情報が必要な場合は、コメントしてください....よろしくお願いします。

4

1 に答える 1

0

つまり、アカウント情報の更新中にパスワードをチェックするべきではないと言っています。ユーザーがパスワード変更フィールドに新しいパスワードを入力した場合、old_password をチェックする条件付き検証を作成できます。

validates_presence_of :password_old, :on => :update, :unless => :current_password.nil?,:message => "Old password is required"
于 2012-07-27T08:56:46.200 に答える