Validation on different actions

Hello Everyone,

I have a User model which uses validation helpers as follows:

Model User

  1. validates_presence_of :name, :email
  2. validates_presence_of :password, :password_confirmation,

When the user is created by the administrator, I want the first validation to be triggered (1). But when the user is updated, (ie the password added by the user on login), I want the second validation to be triggered (2). So on creation the administrator is obliged to enter name and email, but when the user logs in for the first time, they are obliged to change their password. I am using active record and would like to stick to this mode of use if possible. The other option is to create two models, one for update and one for create but it seems a little superfluous. Has anyone any ideas?



You should be able to do this:

validates_presence_of :name, :email, :on => :create validates_presence_of :password, :password_confirmation, :on => :update

This should make it so that they only get called as you specified.