validation question

i have a question about how validates_presence_of works as it pertains to a login system. when you create a user for the first time you can require that both their password and confirmation password are present. but on subsequent updates to the that record you have to enter a confirmation password and that's really annoying.

i've been looking around and i've seen solutions that like something like tihs:

validates_presence_of :confirmation_password, :if=>'required'

where does that ":if" part come from? i mean, how did whoever suggest that know that they could do that? is that a Rails or a Ruby thing?

any insight into that mechanism would be much appreciated.

It's a Rails thing...

http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000813

Configuration options:

* message - A custom error message (default is: "can.t be blank") * on - Specifies when this validation is active (default is :save,    other options :create, :update) * if - Specifies a method, proc or string to call to determine if the    validation should occur (e.g. :if => :allow_validation, or :if =>    Proc.new { |user| user.signup_step > 2 }). The method, proc or string    should return or evaluate to a true or false value.