Ist es möglich, den Anruf zu einer Modul-Funktion von innerhalb einer Klasse, ist auch in diesem Modul

In diesem Ruby-code:

Module M
  Class C < Struct.new(:param)
    def work
      M::helper(param)
    end
  end

  def helper(param)
    puts "hello #{param}"
  end
end

Bekomme ich ein "undefined method 'Helfer' für 'M:Modul'" Fehler, wenn ich versuche zu laufen

c = M::C.new("world")
c.work

aber anrufen M::helper("world") direkt von einer anderen Klasse funktioniert. Können Klassen, die nicht-Aufruf-Modul-Funktionen definiert sind, die im gleichen Modul sind Sie definiert? Gibt es eine Möglichkeit, um dieses andere als das verschieben der Klasse außerhalb des Moduls?

InformationsquelleAutor Ryan Ahearn | 2010-07-01
Schreibe einen Kommentar