У меня есть модель подкаста с одним атрибутом, который называется : url .
Типичный : url принимает следующую форму: http://api.mixcloud.com/alivefrommaryhill/jazzcast/ и возвращаетфайл JSON
Используя hashie и httparty, мы можем написать метод (называемый get_json ), который использует этот URL для создания хеша из JSON, на который он ссылается:
class Podcast < ActiveRecord::Base
attr_accessible :url
def get_json
Hashie::Mash.new HTTParty.get("#{self.url}")
end
end
Затем мы можем использовать get_json в наших представлениях для стилизации и отображения JSON:
#/views/podcasts/index.html.haml
- for podcast in @podcasts
= link_to podcast.get_json.name, podcast_path(podcast)
= podcast.get_json.description
= image_tag podcast.get_json.pictures.medium
Как видите, каждый подкаст вызывает get_json threeраз.У меня есть 21 подкаст, и я не хочу вызывать этот метод более одного раза за посещение, поскольку он подключается к внешнему веб-сервису, который занимает очень много времени.Как я могу минимизировать количество вызовов этого метода и ускорить процесс?
Возможно, я должен делать больше в моем контроллере вместо вызова метода с моей точки зрения?
def index
@podcasts = Podcast.all
end
Любая помощь приветствуется