Tôi có một mô hình người dùng thiết lập như vậy:Làm thế nào để vô hiệu hoá xác nhận mật khẩu/xác nhận khi sử dụng has_secure_password trong Rails 3.2?
class User < ActiveRecord::Base
has_secure_password
# callbacks -------------------------------------------------------------------------
before_create { generate_token(:auth_token) }
# setup accessible (or protected) attributes for your model and validation ----------
attr_accessible :email, :password, :password_confirmation
# validations
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email , presence: true,
uniqueness: { case_sensitive: false },
format: { with: VALID_EMAIL_REGEX }
validates :password , length: { minimum: 6 }
validates :password_confirmation, presence: true
Nhưng tôi không muốn các mật khẩu và/hoặc kiểm chứng thực password_confirmation để chạy khi cập nhật người dùng trừ người dùng đang cố gắng để thay đổi mật khẩu của họ.
Vì vậy, nếu người dùng cập nhật thông tin của họ trong biểu mẫu mà không chỉ định mật khẩu và/hoặc xác nhận, nó sẽ thành công. Nếu người dùng cập nhật thông tin của họ và bao gồm mật khẩu và/hoặc xác nhận, các xác thực sẽ hoạt động.
Cách tốt nhất để thực hiện việc này là gì?
Bạn có thể cũng cập nhật các thuộc tính bằng cách sử dụng @ user.update_attributes ({}) hoặc @ user.update_attribute: attr_name, value. – nverinaud