2012-04-05 12 views
0

Sagen, ich habe zwei Felder in einer new oder edit Form:Validate Feld ist einzigartig im Vergleich zu einem anderen Feld in derselben Form

<%= f.text_field :email %> 
<%= f.text_field :parent_email %> 

Wie in meinem Modell, kann ich bestätigen, dass parent_email von email unterscheidet? Die exclusion Option scheint, wie es funktionieren könnte, aber ich kann nicht herausfinden, wie sich die im Rahmen des Modells Wert email Feld zuzugreifen. Muss ich das stattdessen im Controller implementieren?

validates :parent_email, exclusion: self.email # doesn't work, nor does :email 

Antwort

1

Folgende Arbeiten sollen (aber ich denke, es gibt Kühle Lösungen gibt):

class User 
    validate :email_differs_from_parent_email 

    private 
    def email_differs_from_parent_email 
    if email == parent_email 
     errors.add(:parent_email, "parent_email must differ from email") 
    end 
    end 
end 
+0

dass es funktioniert. Wie üblich bin ich von allen automatischen Methoden verwöhnt. Vielen Dank. – LouieGeetoo

Verwandte Themen