Включение модулей в Rails 3: для методов экземпляра и класса (и с HTTPparty.) - PullRequest
0 голосов
/ 14 сентября 2011

Мне было интересно узнать, как включить методы класса и экземпляра в модуль, а затем включить этот модуль в модель.

Я работаю с другими примерами, но яизо всех сил пытаясь понять, где правильно разместить включаемую 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

с целью присоединения его к модели пользователя с использованием: include Vimeoи возможность звонить:

User.vimeo_account("name")

, а также

user = User.new
user.info

Любой совет будет принята с благодарностью!

1 Ответ

1 голос
/ 14 сентября 2011

Я думаю, что вызов 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
...