2017-06-29 14 views
0

は私がサービスは次のようになりますHiringProcedureServiceと呼ばれているこのRailsの - サービスは、未定義のメソッド

class HiringProcedureService 
    def initialize 
    end 

    def log_procedure(procedure) 
    binding.pry 
    end 
end 

あなたはこのactualyはまだ何もしていないことがわかりますが、私は同じようにコントローラを介しての方法log_procedureにアクセスしようとしています

HiringProcedureService.log_procedure(@procedure) 

次しかし、これは誤り

NoMethodErrorをスロー - 私を未定義 HiringProcedureServiceのための `log_procedure」をTHOD:クラス:

私は間違って何をやっていると、なぜそれが未定義のメソッドを言わないが、方法が明確に定義されています。

+0

' log_procedure'を使用してアクセスする場合は、クラスメソッドとしてそれを定義する必要があります。クラスのために 'self.log_procedure'を使用したい場合は – kapilsdv

答えて

1

NoMethodError - HiringProcedureServiceのための未定義のメソッド `log_procedure」:クラス:

あなたはインスタンスメソッドとしてlog_procedureを定義しています。あなたは、クラスメソッド、HiringProcedureService` `クラスのオブジェクトのためのインスタンスメソッドではありませんclass

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

ありがとう、これは役に立ちます。インスタンスメソッドが何であるか理解してもらえますか? – Saadia

+0

@Saadiaこれをチェックしてくださいhttp://culttt.com/2015/06/10/understanding-class-methods-verses-instance-methods-in-ruby/ – Pavan

関連する問題