2013-03-16 2 views
0

Im, используя Httparty для доступа к API COLOURLovers. Но я смотрю, как это делается в рельсах. я сумел это работать, создав класс по app/models/clover.rb:Рельсы, получающие доступ к API

require 'httparty' 
class Clover 
    include HTTParty 

    base_uri 'www.colourlovers.com/api' 

, а затем я определил такие методы, как:

def self.random(resource) 
    fix_params query 
    response = get("/#{resource}/random", { query: query }) 
    ActiveSupport::JSON.decode(response.body) 
    end 

тогда я запрос для ресурса как:

Clover.random :color 

Это делает эту работу, но я не уверен, что это хороший способ решить эту проблему. В этой ситуации есть шаблон дизайна?

ответ

1

Я бы извлек материал http в его собственный класс/модуль, включая анализ ответа, а затем наследует ваш фактический класс модели, поэтому модель только когда-либо имеет дело с самим ресурсом, а не с коммуникацией/разбором.

Смежные вопросы