Это связано с тем, что в rails3 вы больше не можете просто определять методы в ваших моделях, названных для рассматриваемого обратного вызова.Вы должны объявить их с помощью before_validation :foo
или что у вас есть (: foo ссылается на метод экземпляра класса модели, но вы также можете передать в proc или класс).
Итак. Это не 'Это идеальное решение, но оно должно дать вам несколько идей:
obj = MyModel.first
class << obj
before_validation :foo
def foo
p 'before_validation'
return super
end
end
Этот код открывает «собственный класс» объекта (для этого есть разные названия) и ведет себя так, как если бы это был исходный контекст класса.