0

クラスメソッドとインスタンスメソッドの両方をモジュールに入れて、そのモジュールをモデルに含める方法について考えていました。

他の例でも機能しますが、インクルードHTTPpartyを正しく配置する場所を理解するのに苦労しています。

以下は私がいる場所の詳細です:

module Vimeo

  def self.included(base)
    base.extend(ClassMethods)
  end

  module ClassMethods

   class Base      
     include HTTParty
     base_uri 'vimeo.com/api/v2'
     headers 'Content-Type' => 'application/json' 
   end

   class VimeoUser < Base

    def vimeo_account(account_name)
      @id = account_name
    end

   end

 end

   def info
     Vimeo::Base.get("http://vimeo.com/api/v2/#{@id}/info.json")
   end

end

以下を使用してユーザーモデルにアタッチすることを目的としています:Vimeoを含め、以下を呼び出すことができます:

User.vimeo_account("name")

と同様

user = User.new
user.info

アドバイスをいただければ幸いです。

4

1 に答える 1

1

次のようにgetを呼び出すと、問題が解決すると思います。

def info
  Vimeo::Base.class.get("http://vimeo.com/api/v2/#{@id}/info.json")
end

しかし、私には、以下のように簡単な設定を行うことができるようです:(私が理解していないことがもっとある場合を除いて)

   class VimeoUser
     include HTTParty
     base_uri 'vimeo.com/api/v2'
     headers 'Content-Type' => 'application/json' 

   // All vimeo user related methods here, such that self.class.get etc is possible.
   end
于 2011-09-14T11:19:50.300 に答える