Ich arbeite in jemand anderen Code und ich habe einen HTTParty-Dienst in einer Rails-App mit der folgenden Klassenhierarchie. Beachten Sie die Unterklasse #initialize
mit einer anderen Signatur als die Elternklasse.Ruby: undefined Methode für nicht initialisiert
module A
class Base
include HTTParty
...
end
end
module A
class User < Base
def initialize(user)
@user = user
end
end
end
module A
class PublicUser < User
def initialize(opts = {})
@limit = opts[:limit]
# no call to super
end
end
end
Vor Ort gibt es keine Probleme mit diesem, aber in SemaphoreCI die folgenden Ergebnisse:
A::PublicUser.new(limit: 1).some_method
undefined method `some_method' for #<A::PublicUser not initialized>
ich keine Dokumentation über die „nicht initialisiert“ -Meldung finden. Was verursacht diese Art von Versagen?
Ist das ein einfacher Rubin oder Schienen? – mudasobwa
Die Klassen, die den Fehler verursachen, sind alle einfach Rubin. Aber es wird in einer Rails-Anwendung aufgerufen. – steel
Haben Sie explizit alle Dateien benötigt? – mudasobwa