14 Stimmen

Ruby/Rails: Erneutes Öffnen vs. Überschreiben einer Klasse

Ich möchte eine Methode zu einem Rails-Modell hinzufügen, die beim Testen verwendet werden soll. Wenn ich dies tue

class Model
  def something_new
    do_something
  end
end

in der Rails-Konsole oder in einer Datei, die zur Laufzeit geladen wird, wird Model überschrieben und nicht verändert. Wenn ich etwas wie v = Model.class vor den obigen Zeilen wird die neue Methode erfolgreich zur bestehenden Klasse hinzugefügt. Offenbar wird der Verweis benötigt, um zu signalisieren, dass eine bestehende Klasse erneut geöffnet wird.

Andererseits kann man z. B. eine Methode zu Fixnum hinzufügen, ohne dass man sich vorher auf diese beziehen muss. Was ist hier los, und wie kann man sicherstellen, dass eine bestehende Klasse erneut geöffnet und geändert wird, anstatt sie zu überschreiben?

Gracias.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X