Schienen und Modellvalidierung
-
19-09-2019 - |
Frage
Ich möchte einige Modellebene Validierung auf der folgenden Tabelle setzen:
create_table :audios do |t|
t.integer :library_id, :null => false
t.string :file, :null => false, :limit => 2048
t.string :name, :limit => 512
t.timestamps
end
Heißt das, dass mein Modell, das (bisher) sieht aus wie:
class Audio < ActiveRecord::Base
belongs_to :library
end
Hat
class Audio < ActiveRecord::Base
validates_presence_of :library
...
oder
class Audio < ActiveRecord::Base
validates_presence_of :library_id
...
Lösung
Um die Anwesenheit eines Vereins zu validieren, verwenden Sie den Namen, ohne _id
angefügt:
validates_presence_of :library
Es wird zwei Dinge bestätigen:
-
library_id
vorhanden ist - a
Library
mit dem angegebenenid
existiert
validates_presence_of :library_id
Verwendung wird Ihnen nur die erste Validierung der beiden.
Zusätzlich dazu wird die Version ohne _id
auch korrekt validieren, wenn beide Datensätze neu sind (und daher library_id
ist noch nicht gesetzt).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow