2016-03-04 56 views
2

我想使用mixin(HTTParty)並從類實例中訪問那些混入方法。以我目前的執行情況,紅寶石是告訴我它不知道的方法「獲得」:在類中使用mixin

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中我困惑的一大問題。我相信這對正確的人來說是微不足道的。一個混合的大多數例子利用這個與像

Recipe.for('term') 

的靜態引用這不是很OO我,所以我想這樣做,如:

recipes = Recipe.new('key') 
recipes.search('chocolate') 
+1

我建議你閱讀http://catb.org/esr/faqs/smart-questions.html。雖然我們很欣賞學習的困難,但我們期待着經過深思熟慮和寫得很好的問題;如果你已經做了充分的研究,並且你的問題反映了你研究並試圖解決問題的努力,那麼你在學習曲線上的位置並不是真正的密切關係。我們尊重努力。 –

回答

2

get類方法HTTParty。重寫你的實例方法search這樣的:

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