2012-12-25 84 views
2

我有一個Rails應用程序在那裏我用很多API,如谷歌的Adwords,臉譜圖等API調用和邏輯應該放在模型還是控制器中?

我應該在哪裏調用這些API?在模型或控制器中?

+0

不是一個真正的答案,但我把它放在模型,如果我有一個適當的,如果控制器沒有相應的模型。我的身影模型方法可以在任何地方調用,並有助於乾的事情。 – bdares

回答

2

我會用這些類型的東西的lib目錄。這是一種乾淨且可重用的方式。

的lib/facebook_api.rb

class FacebookApi 
    def initialize(opts={}) 
    @token = "..." 
    @type = opts[:type] || "me" 
    end 

    def call 
    @response = Httparty.get("#{@type} #{@token}") #example not real. 
    @response 
    end 
end 

您可以使用它像

@facebook_api = FacebookApi.new(type: "friends") 
@facebook_api.call 
0

我的回答是控制器 ..

我們從API的結果控制器,我們可以將其存儲在模型

首先每個動作都會在控制器內完成。

而且我們可以在production.rb中聲明API路徑。並在應用程序的任何地方使用它。如果需要更改API路徑,則只需在production.rb中更改它。

相關問題