1

一般来说,我对 Rails 和 MVC 开发非常陌生,并且一直在开发一个对 bitly 进行外部 API 调用的应用程序。

我在视图中放置了以下内容以生成一个 shorturl,然后我将其用于 fb 和 twit。

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

现在我已经这样做了,我意识到每次查看这个页面时我都会打电话。我认为在模型视图中执行此操作比允许缓存更有效。这有意义吗?我将如何在模型中执行此操作?

4

3 回答 3

0

最好将 API 放在单独的模型文件中,通过控制器调用它们并将其传递给相应的视图。这样做您可以在控制器中调节您的 API 调用。

于 2013-09-20T16:34:10.047 回答
0

我更喜欢将它们放入一个负责处理不同外部 API 的服务中。

像往常一样,有一个 RailsCast 用于创建服务对象http://railscasts.com/episodes/398-service-objects

于 2013-11-07T00:50:51.210 回答
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
于 2014-02-06T16:24:00.137 回答