В чем разница между проверками: наличие и validates_presence_of? Просматривая ActiveModel, похоже, что они настраивают валидацию одинаково. Однако, учитывая следующее определение модели:
class Account < ActiveRecord::Base
has_one :owner_permission, :class_name => 'AccountPermission', :conditions => { :owner => true, :admin => true }
has_one :owner, :class_name => 'User', :through => :owner_permission, :source => :user
validate :owner, :presence => true
validates_associated :owner
end
Вызов сохранения экземпляра учетной записи не подтверждает наличие владельца. Хотя, если я использую validates_presence_of, это будет.