2017-06-29 2 views
0

Ich habe einen Dienst namens HiringProcedureService die wie folgt aussiehtRails - Service nicht definierte Methode

class HiringProcedureService 
    def initialize 
    end 

    def log_procedure(procedure) 
    binding.pry 
    end 
end 

Sie werden feststellen, dass diese actualy nichts tut noch, aber ich versuche, nur die Methode für den Zugriff auf log_procedure über den Controller als folgende

HiringProcedureService.log_procedure(@procedure) 

Aber das wirft einen Fehler

NoMethodError - undefined mich Thod `log_procedure‘ für HiringProcedureService: Klasse:

Was mache ich falsch, und warum es nicht definierte Methode sagt, wird das Verfahren klar definiert.

+0

mit 'log_procedure' ist keine Klassenmethode, seine eine Instanzmethode für das Objekt der Klasse' HiringProcedureService'. Wenn Sie das für die Klasse möchten, verwenden Sie 'self.log_procedure' – kapilsdv

Antwort

1

NoMethodError - nicht definierte Methode `log_procedure‘ für HiringProcedureService: Klasse:

Sie log_procedure als Instanzmethode definiert haben. Sie müssen es als Klassenmethode definieren, wenn Sie darauf zugreifen wollen, um den class

def self.log_procedure(procedure) 
    binding.pry 
end 
+0

Danke, das hilft. Können Sie mir bitte helfen zu verstehen, was Instanz Methode ist – Saadia

+0

@Saadia Überprüfen Sie diese http://culttt.com/2015/06/10/understanding-class-methods-verses-instance-methods-in-ruby/ – Pavan

Verwandte Themen