2016-07-12 4 views
0

私はRails 4.2.4を使用しています。私は私のクラスで以下のメソッド...メソッドが明確に定義されているときに、Railsでこの未定義のメソッドを取得するのはなぜですか?

def self.object_desc_link(event_id, app_id, token, bib_no) 
    OBJECT_DESC_LINK_TEMPLATE.sub(%r{events\/([^\\])+}, "events=#{event_id}") 
          .sub(%r{appid=([^\&])+}, "appid=#{app_id}") 
          .sub(%r{token=([^\&])+}, "token=#{token}") 
          .sub(%r{search=([^\&])+}, "search=#{bib_no}") 
    end 


    def process_page_data(object_id, content) 
    … 
     object_desc_link_str = self.object_desc_link(@event_id, @app_id, @token, i) 

を持っている。しかし、それは上の行に到達したとき、私は

undefined method `object_desc_link' for #<MyService:0x007f8cb3584840> 

スペルが正しいに見えるエラーを取得し、なぜ私はこのエラーを取得していますか?

答えて

0

は、それはあなたのクラスからより多くの情報を必要とするかもしれませんが、私が見ることができるものから -

それは()object_desc_linkのように見えるクラスメソッドです。インスタンスメソッドであるprocess_page_data()で呼び出されると、selfはクラスではなくインスタンスになります。

object_desc_link()はそのクラスのインスタンスにインスタンスメソッドとして存在しないため、このエラーが発生する可能性があります。それはクラスでのみ呼び出すことができます。

object_desc_link()をインスタンスメソッドに変更したいかもしれないようですが、達成しようとしていることについての詳細情報なしではわかりません。

私はそれが助けてくれることを願っています!

関連する問題