Also, das ist ziemlich klar in Javascript, die selbst wäre in dieser Situation, aber ich bin nicht positiv in Ruby.Wer ist "selbst" in einem Ruby-Klassenblock?
class Product
after_initialize do |p|
p.set_approved
end
set_approved
approved = true
end
end
Weil ich war ziemlich sicher, dass p wäre, da ich den Code bin sicher,
def after_initialize(&blk)
yield(self)
end
eine Art ist und der Kontext der beiden Methoden ist self
, warum ich zu tun
def set_approved(p)
p.approved = true
end
In Ruby bezieht sich 'self' fast immer auf die Objektinstanz oder den Klassenkontext, in dem die Methode definiert ist. Wo existiert' a_i'? Ist das Ihre Kurzform für 'after_initialize'? Versuchen Sie, das nicht in Fragen zu tun. – tadman
@sawa 'self' kann (normalerweise) in Ruby beim Aufruf von Methoden angegeben werden. Also in diesem Fall genehmigt ist eine db-Spalte und automatisch von Rails erstellt. – MCB
Ich vermisste die, die du in 'yield (self) 'hast. – sawa