2012-04-10 5 views
1

Ich versuche Rails-Validierungen für ein Formular-Textfeld zu verwenden, um zu sehen, ob der eingegebene Text mit vorhandenen Werten in einer bestimmten Spalte einer Tabelle in der Datenbank übereinstimmt. Ist das mit Rails möglich?Rails 3 Validation - Vergleich mit Datenbankwerten

Grundsätzlich wie folgt aus:

Benutzer gibt 'Foobar'

Tabellenspalte Werte: 'Foobar, Test, Haus, zufällig'

Validierung nicht besteht, weil 'Foobar' bereits in die Datenbank.

Danke! dwmcc

Antwort

1

Sie können dies mit etwas in Ihrem Modell tun wie validates_uniqueness_of :name oder neu in Rails 3 mehr Validierungen inline mit validates :name, :presence => true, :uniqueness => true

From the Rails API tun können.

+0

Danke, zwei weitere Fragen: Wie kann ich die Groß-/Kleinschreibung beachten, so dass die Anwendung "Foobar" nicht akzeptiert, weil "FOOBAR" bereits in der Datenbank existiert? Und wie kann ich die Eindeutigkeit des Feldes anhand einer anderen Tabelle validieren? Um zu klären, wie kann ich bestätigen, dass "Foobar" nicht in einer anderen Tabelle in meiner Datenbank existiert? Vielen Dank! – dwmcc

+2

'validates_uniqueness_of: name,: case_sensitive => false' –

+1

Wie für den zweiten Teil Ihrer Frage, ich weiß es nicht. Ich denke, das ist komplex genug, um eine neue Frage zu rechtfertigen. –