attr_accessor Standardwerte
Ich bin mit Schienen und ich will es so machen, dass attr_accessor :politics
gesetzt ist, wird standardmäßig auf false.
Weiß jemand, wie dies zu tun und ist in der Lage, es zu erklären in einfachen Worten für mich?
InformationsquelleAutor der Frage Vasseurth | 2011-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schienen hat attr_accessor_with_default so könnte man schreiben
und das ist alles
UPDATE
attr_accessor_with_default wurde als veraltet markiert in Rails 3.2.. Sie könnten dies tun, anstatt mit reinem Ruby
InformationsquelleAutor der Antwort Orlando
Wenn Sie definieren Ihre attr_accessor, standardmäßig ist dieser Wert
nil
. Sie können es schreiben, damit es!nil
InformationsquelleAutor der Antwort
Können Sie mit der virtus gem:
https://github.com/solnic/virtus
Aus der README:
Es unterstützt speziell Standardwerte.
InformationsquelleAutor der Antwort Thilo
Meiner Meinung nach, ich denke, diese Antwort ist gut. Obwohl Wir überschreiben die initialize-Methode, aber da super genannt wird in Erster Linie von dieser Methode, es nicht etwas ändern, um die Basisklasse zu initialisieren Methode, vielmehr ist es wesentliches Merkmal der objektorientierten Programmierung, die wir außer Kraft setzen kann, und fügen Sie einige mehr Funktionen zu der Zeit der Initialisierung von obects. Und Auch die Initialisierung wird nicht übersprungen werden beim Lesen der Objekte aus der Datenbank, da super ist aufgerufen, an der ersten Zeile der Funktion.
InformationsquelleAutor der Antwort Naresh Dwivedi
Geschieht dies nicht in attr_accessor, sondern in der migration.
So .. könnten Sie eine migration ausführen
(1)
rails g migration ChangePoliticsColumnToDefaultValueFalse
(2) fügen Sie diese in
def self.up
def self.up change_column :your_table, :politics, :boolean, :default => 0 end
Die Quintessenz ist, dass die Standard-Attribute werden set-in-Migrationen.
Hoffe, das hilft!
Edit:
Gibt es einige ähnliche Fragen auch schon beantwortet worden gut:
Wie hier und hier
InformationsquelleAutor der Antwort Benjamin Tan Wei Hao
Habe ich mit dieser form in ActiveRecord:
InformationsquelleAutor der Antwort mcmoyer
attr_accessor in rails sind nur virtuelle variable, die nicht speichern in der Datenbank, und es kann nur verwendet werden, bis die aktive Datensatz nicht speichern oder aktualisieren in der Anwendung.
Sie können festlegen, attr_accessor im model wie
und verwenden in der form :-
und können Sie finden diese vartual Wert der Variablen in der Steuerung param...
InformationsquelleAutor der Antwort Ganesh Shrivas