2013-09-20 3 views
1

Я очень новичок в разработке рельсов и MVC в целом и работаю над приложением, которое вызывает внешний API-вызов.Rails - MVC - Должен ли я переместить внешний API-вызов модели?

Я создаю следующее в представлении, чтобы создать shorturl, который затем я использую для fb и twit.

<% Bitly.use_api_version_3 
    bitly = Bitly.client 
    shareUrl = bitly.shorten("http://example.com/#{id}").short_url%> 

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

ответ

0

я в конечном итоге делает следующее в модели

before_save :set_shareUrl 
def set_shareUrl 
Bitly.use_api_version_3 
bitly = Bitly.client 
self.shareURL = bitly.shorten("http://example.com/#{id}").short_url 
end 
0

Всегда лучше иметь ваши API-интерфейсы в отдельном файле модели, вызывать их через контроллеры и передавать их в соответствующее представление. При этом вы можете регулировать вызовы API в контроллере.

0

Я предпочитаю помещать их в Службу, которая отвечает за работу с различными внешними API.

Как обычно есть RailsCast для создания службы объектов http://railscasts.com/episodes/398-service-objects

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

  • Нет связанных вопросов^_^