I have a validates_confirmation_of :password
in my User model. The problem is I also run @comment.user.save!
when a comment is created to update some attributes on the user account.
I get an error when creating a comment Validation failed: Password confirmation can't be blank
. I can't add :on => "save"
to my validation because my comments
controller is also calling the save function.
I've read this thread Rails model validation on create and update only, but it doesn't answer my specific issue.
UPDATE User model snippet:
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