partial updates and validations

Given a very wide table from a legacy database, I am going through a form wizard updating specific attributes on different pages.

Is there a way to check to run validates_presence_of only on specific attributes that have changed?

I was trying something like:

validates_presence_of :p1_new_first_name, :if => :p1_new_first_name_changed?

validates_presence_of :p1_first_name, :if => :p1_first_name_changed?

And it almost works, but the flaw is obvious. If the attribute is left blank, it wont be changed even if it goes from nil to a "" . Is there any way around this?