我对rails和MVC开发非常陌生,并且一直致力于开发一个可以进行外部API调用的应用程序。
我在视图中放置以下内容以生成一个shorturl,然后我将其用于fb和twit。
<% Bitly.use_api_version_3
bitly = Bitly.client
shareUrl = bitly.shorten("http://example.com/#{id}").short_url%>
既然我已经这样做了,我意识到每次看到这个页面时我都会打电话。我认为在模型视图中执行此操作比允许缓存它更有效。这是否有意义,我将如何在模型中执行此操作?
答案 0 :(得分:0)
最好将API放在单独的模型文件中,通过控制器调用它们并将其传递给相应的视图。这样做可以控制控制器中的API调用。
答案 1 :(得分:0)
我更愿意将这些内容放入一个负责处理不同外部API的服务中。
像往常一样,有一个RailsCast用于创建服务对象http://railscasts.com/episodes/398-service-objects
答案 2 :(得分: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