Ich bin neu bei Rails und ich stehe vor einem Problem. Ich habevalidates_inclusion_of Rails 3 mit einer Abfrage, die nicht wie erwartet funktioniert
Modelle
Model1
id: integer
account_id: integer
Account
id: integer
ich im Model1 eine Validierung haben wie folgt,
Model Code:
validates :account_id, :inclusion => { :in => Account.find(:all).collect(&:id)}
Ich benutze ein Drop-Down für Code anzeigen:
<%= f.select :account_id, @accounts.collect {|acc| [acc.name, acc.id]}, {:prompt => 'Select Account' }, { :selected => @defaultaccount, :class => 'selectwidth' } %>
Ich verwende clientseitige Validierungen, um die Felder vor dem Senden des Formulars zu validieren. Ich verwende Heroku, um meine App bereitzustellen.
Ich erstelle zuerst einen Account und dann versuche ich aus dem Formular ein neues Model1 zu erstellen. Das Drop-Down-Menü enthält alle Accounts, die ich habe. Dann wähle ich ein Konto, das ich aus dem Dropdown erstellt habe, die clientseitigen Validierungen treten in Kraft und sagen "ist nicht gültig", was die Fehlermeldung für validates_inclusion_of ist, als ob das Konto niemals existiert. Nicht sicher, was ishappening und ich überprüfte die Datenbank und das Konto wird erstellt, weshalb das Dropdown-Konto mit Konten an erster Stelle geladen wird.
Ich ändere die validates_inclusion_of zu Rails 3 validiert: account_id,: inclusion => {: in => {}} Syntax und reploy. Jetzt versuche ich, dieses Konto in dem neuen model1-Formular auszuwählen. Die Dropdownliste zeigt keinen Fehler für das Konto an, das zuvor erstellt wurde.
Also dann habe ich ein neues Konto erstellt und versucht, ein neues Model1 für das neue Konto erstellen die Validierung Fehler wieder auftaucht.
Also ist es wie ein Cache-Problem? Ist es ein Client-seitiges Validierungs-Problem? Ich habe alles getan, um zu versuchen, die Probleme zu finden, aber ich habe keine Ideen, was passiert.
Also jedes Mal, wenn ich ein Konto erstelle, erwartet mich, dass ich deploy, was tötet, was die Anwendung tut. Wie werde ich dieses Problem los? Nicht wirklich sicher, was passiert.
Config, Rails 3 in Heroku Eingesetzte Asset-Pipeline
Gems verwendet: Client Side Validierungen Kaminari
Ich habe nicht die ganze Logik der Validierungsabfrage nur der Einfachheit halber gegeben :) Nun danke für den Kopf über die Bewertung. – Baaju
Ah OK. Das Bewertungsproblem mit Validierungen und Scopes ist etwas, das dich manchmal verrückt machen kann :) – lucapette