Ho un modello utente impostato come tale:Come disabilitare le convalide di password/conferma quando si usa has_secure_password in 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
Ma non voglio che la password e/o convalide password_confirmation per eseguire quando si aggiorna l'utente a meno che l'utente sta tentando di modificare la propria password.
Quindi, se l'utente aggiorna le proprie informazioni in un modulo senza specificare una password e/o conferma, dovrebbe avere successo. Se l'utente aggiorna le proprie informazioni e include una password e/o conferma le convalide dovrebbe eseguire.
Qual è il modo migliore per realizzare questo?
È possibile aggiorna anche gli attributi usando @ user.update_attributes ({}) o @ user.update_attribute: attr_name, valore. – nverinaud