Validation on different actions


#1

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?

Thanks,

j


#2

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.