Warum kann ich nicht auf die private Methode check_url
im folgenden Code einer gekapselten Klassenmethode zugreifen?
PS. Ich habe auch versucht, self.check_url
und es hat nicht funktioniert.
In Ruby können private Methoden nicht mit einem expliziten Empfänger aufgerufen werden. Sie können also self.check_url
nicht aufrufen. Rufen Sie stattdessen check_url
auf.
Ihr anderes Problem ist, dass Sie check_url
als Instanzmethode definiert und in einer Klassenmethode aufgerufen haben. Verschiebe die check_url
in den class << self
Bereich:
check_url
ist als Instanzmethode definiert, und Sie versuchen, über eine Klassenmethode darauf zuzugreifen (die Methode ist für die Klasse nicht definiert, sie ist für eine Instanz definiert). Ändern Sie def check_url
in def self.check_url
oder fügen Sie sie in den class << self
-Block ein.
Sind Sie sicher, dass Sie einen privaten Methodenfehler erhalten, oder erhalten Sie tatsächlich einen undefinierten Methodenfehler (beide sind ein NoMethodError
, aber mit verschiedenen Nachrichten)?
Tags und Links ruby ruby-on-rails ruby-on-rails-3.1