2009-06-17 7 views

Antwort

-1

Auf jeden Fall, aber Sie haben write_attribute

c.write_attribute(:type, "Page") 
c.save 
+0

Was ist der Unterschied zwischen c.type = Page, c.write_attribute (: type, "Page") und c.send (: type =, "Page"). Ich glaube, dass all diese drei Methoden verständlicherweise @type = "Page" setzen, oder? Auch wird es irgendein Problem geben, wenn ich meine eigenen Getter- und Setter-Methoden für den Typ definiere, der die object.type-Methode außer Kraft setzt? – Dharam

+0

bei der zweiten Überprüfung, c.type = "Seite" entspricht genau c.write_attribute (: type, "Page"). Das Wichtigste ist, dass es ein String-Wert sein muss. Solange Ihre Überschreibung vom Typ immer noch vernünftige Werte zurückgibt, sollten Sie in Ordnung sein. Sie können die STI-Spalte auch ändern, indem Sie den Wert von vererbung_spalte ändern. –

0

Ich empfehle etwas wie dies tun würde verwenden ...

klass = "Page" 
klass.constantize.create(:title=>'title') 

Wenn Sie nur um Affen mit dem Attribut ‚Typ‘, Sie Es gibt keine Methoden, die Sie in der Unterklasse Ihres Objekts überschreiben.

Verwandte Themen