In Ecto können Sie fields in your Schema einen Standardwert angeben, indem Sie sie wie field :name, default: "john"
angeben. In den Dokumenten wird angegeben, dass dieser Standard zur Kompilierungszeit gespeichert wird und dass Dinge wie Date.now
oder UUID.generate
nicht funktionieren.Ecto: Wie definiert man variable Standardfeldwerte im Schema?
Meine Frage ist: Wie erstellen wir diese variablen Standardwerte? Man könnte sagen, "setzen Sie einfach den Wert nach dem Erstellen der Struktur". Bei der Arbeit mit virtuellen Feldern ist dies jedoch nicht möglich. Wenn Sie e. G. Repo.all(MyModel)
oder andere Abfrage-Befehle, virtuelle Felder werden auf ihren Standard-Festwert gesetzt.
Wie können wir variable Schemafeldstandards erstellen?
Ich bin mir nicht sicher, ob ich die Frage verstanden habe, aber Sie können den Standardwert überhaupt entfernen und für alle Datensätze festlegen, nachdem Sie sie mit 'Repo.all' abgerufen haben oder wenn Sie den Standardwert beibehalten möchten Einfach nach dem Abruf neu schreiben. – JustMichael
@JustMichael Wenn Sie das tun, koppeln Sie Ihren Code fest: Entweder müssen alle Orte, die das Modell verwenden, über die Standardeinstellungen Bescheid wissen, oder das Modell muss wissen, wie es von der Datenbank abgefragt wird. – Qqwy