2009-06-04 15 views

Respuesta

29

me gustaría escribir una validación personalizada:

validate :has_users? 

def has_users? 
    errors.add_to_base "Model must have some users." if self.users.blank? 
end 

que haría exactamente eso.

+8

Necesitaba usar 'self.errors.add: base," El modelo debe tener algunos usuarios. " ' –

+0

Esto no funciona en Rails 3.2 –

1

Josh Susser escribió un plugin que añade un método validates_existence_of que hace lo que quiere. Asegura que una clave foránea hace referencia a un registro que existe.

+0

que parecía prometedor, pero que no funcionó: "No se puede validar la existencia de: usuarios porque no es una asociación belongs_to". Parece que es solo para belongs_to ... – cmaughan

+0

Eso es correcto. ¿Qué hay del otro lado de tu asociación? –

2

En Rails 3.2.x:

validate :has_users? 

def has_users? 
    errors.add(:base, 'Error message') if self.users.blank? 
end 
27

En los carriles 4 que sólo puede hacer

validates :users, presence: true 
0

Probar:

validates :users, :length => { :minimum => 1 } 
Cuestiones relacionadas