2009-06-04 32 views

Antwort

29

würde ich benutzerdefinierte Validierung schreiben:

validate :has_users? 

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

, die genau das tun würde.

+8

Ich musste 'self.errors.add: base verwenden," Model muss einige Benutzer haben. " ' –

+0

Dies funktioniert nicht in Rails 3.2 –

1

Josh Susser einen plugin schrieb, die eine validates_existence_of Methode fügt das tut, was Sie wollen. Es stellt sicher, dass ein Fremdschlüssel auf einen vorhandenen Datensatz verweist.

+0

Das vielversprechend aussah, aber es hat nicht funktioniert: "Das Vorhandensein von: Benutzern kann nicht überprüft werden, da es sich nicht um eine assigns_to-Verknüpfung handelt." Sieht so aus, als ob es nur für angies_to ... – cmaughan

+0

Das ist richtig. Was ist am anderen Ende deines Vereins? –

2

In Rails 3.2.x:

validate :has_users? 

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

In 4 Schienen können Sie einfach tun

validates :users, presence: true 
0

Versuchen:

validates :users, :length => { :minimum => 1 } 
Verwandte Themen