我想使用mixin(HTTParty)并从类实例中访问那些混合在一起的方法。在我目前的实现中,Ruby告诉我它不知道方法“get”:
class Recipe
include HTTParty
base_uri 'http://www.food2fork.com/api'
default_params :key => @key
format :json
def initialize(key)
@key = key
end
def search(term)
get('/search', query: { q: term})['recipes']
end
def self.for(term)
get('/search', query: { q: term})['recipes']
end
end
在Ruby中,确定范围仍然是我的一个大问题。我相信这对合适的人来说是微不足道的。 mixin的大多数示例都使用静态引用(如
)Recipe.for('term')
这对我来说不是很好,所以我想这样做:
recipes = Recipe.new('key')
recipes.search('chocolate')
答案 0 :(得分:2)
get
是 HTTParty 的类方法。像这样重写你的实例方法search
:
def search(term)
self.class.get('/search', query: { q: term})['recipes']
end