I don't know what you are trying to do. Are you trying to turn off
conditions based on a particular condition? I.E. "If a user submits
from form A then validate, if a user submits from form B then don't
validate" ?
That link will tell you how to set up a :if statement on a validation.
Basically, the :if should be a string (which will be run through an eval), a function (via it’s symbol name), or a Proc… whichever of the 3 it is, it should return true or false when evaluated.
If your requirements might change (you might add to or take away from the conditions), you’d be best off going with a function, if it’s VERY simple stuff (like what you have here) and it will never change, use a string. If you need access to the particularly object that the validation is being called on, you can use a proc (or a function) that accepts an argument…
You don’t need to validate the field in the validation test for the field… you’re completely missing the point of the :if statement.
If you absolutely HAVE to have that in there, I would change the :if to
:if => Proc.new { |m| m.objective && Requirement.perform_validation }
I still have absolutely no clue where that whole validatevalidation_mig stuff is coming from… but I’m pretty sure what I said is what you’re looking for.