我一直想知道将类和实例方法同时放入模块,然后将该模块包含到模型中的方法。
我已经使用了其他示例,但我很难理解在哪里正确放置包含HTTP方案。
以下是我所在位置的详细信息:
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
非常感谢任何建议!
答案 0 :(得分: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