Rails: Zuordnung nach Speichern validieren?
Ich habe einUser
Modell, das viele hatroles
. Rollen enthält auser_id
Feld, das ich willvalidate_presence_of
Das Problem ist: Wenn ich dem Benutzer beim Erstellen eine Rolle zuweise, schlägt die Überprüfung fehl, da keine Benutzer-ID festgelegt ist. Jetzt ichtun Ich möchte überprüfen, ob eine Benutzer-ID vorhanden ist, muss den Benutzer jedoch speichern, bevor ich dies überprüfe.
Der Code sieht derzeit so aus:
@user = User.new(params[:user])
@user.roles << Role.new(:name => 'Peon') unless @user.has_roles?
if @user.save
# ...
Die einzige Möglichkeit, das Problem zu umgehen, besteht darin, entweder die Überprüfung zu deaktivieren, die ich nicht ausführen möchte, oder die Datenbank doppelt zu speichern, was nicht gerade effizient ist.
Wie wird dieses Problem standardmäßig behandelt?