在课堂上使用mixin

时间:2016-03-04 21:39:45

标签: ruby

我想使用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')

1 个答案:

答案 0 :(得分:2)

get HTTParty 的类方法。像这样重写你的实例方法search

def search(term)
  self.class.get('/search', query: { q: term})['recipes']
end