应该API调用&逻辑进入模型或控制器?

时间:2012-12-25 09:54:51

标签: ruby-on-rails ruby-on-rails-3.1 ruby-on-rails-3.2

我有一个rails应用程序,我使用许多API,如Google Adwords,Facebook Graph等。

我应该在哪里调用这些API?在模型中还是在控制器中?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我的回答是控制器 ..

我们从控制器中获取API的结果,我们可以将其存储在模型中。

首先,每个动作都将在控制器内完成。

我们可以在 production.rb 中声明API路径。并在应用程序内的任何地方使用它。如果需要更改API路径,则只需在production.rb中更改它。