Я хочу выполнить пользовательскую проверку, прежде чем запись будет создана?
Выглядит, как будто это - правильный метод: before_validation_on_create. Например:
before_validation_on_create :custom_validation
Но не уверено. Любая справка ценилась бы.
Перехватчики before_validation_on_create происходят до проверки при создании… но сами по себе они не являются проверками.
Что вы, вероятно, захотите сделать, так это использовать validate
и частный метод, который добавляет к массиву ошибок. вот так:
class IceCreamCone
validate :ensure_ice_cream_is_not_melted, :before => :create
private
def ensure_ice_cream_is_not_melted
if ice_cream.melted?
errors.add(:ice_cream, 'is melted.')
end
end
end
Здесь есть отличный ресурс с информацией об обратных вызовах и порядке их выполнения:
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html