I have validates_confirmation_of :password in my User model. The problem is that I also run @comment.user.save! when a comment is created to update some attributes in the user account.
I get an error when creating a comment Validation failed: Password confirmation can't be blank . I cannot add :on => "save" to my check because my comments controller also calls the save function.
I read this topic Validating the Rails model for creation and updating only , but it does not answer my specific problem.
UPDATE Fragment of user model:
class User < ActiveRecord::Base attr_accessor :password # validations validates_presence_of :username validates_length_of :username, :within => 6..25 validates_uniqueness_of :username validates_presence_of :email validates_length_of :email, :maximum => 100 validates_format_of :email, :with => EMAIL_REGEX validates_confirmation_of :password, :if => :password_changed? validates_presence_of :password_confirmation validates_length_of :password, :within => 4..25, :on => :create before_save :create_hashed_password after_save :clear_password private def clear_password self.password = nil end end
source share