Httparty - 跨类共享价值观

时间:2016-04-07 11:10:06

标签: ruby-on-rails

所以我有2个服务进行api调用,他们做了不同的事情但是在课堂顶部都有相同的httparty设置,最好的方式是分享这些设置吗?使用继承还是其他一些编码机制?

e.g。

class FirstService
  include HTTParty
  format :json
  base_uri: "url"
  basic_auth
  default_timeout 360

class SecondService
  include HTTParty
  format :json
  base_uri: "url"
  basic_auth
  default_timeout 360

我可以创建一个顶级类,并以某种方式继承这两个值吗?

2 个答案:

答案 0 :(得分:0)

你可以这样做。如果服务之间有继承,我建议只做这件事(Animal是Cat和Dog的逻辑父类,但不是Cat和Car的逻辑父类)。否则,我建议使用模块包括:

 module HTTPartyReady
  include HTTParty
  format :json
  base_uri: "url"
  basic_auth
  default_timeout 360
 end

class FirstService
  include HTTPPartyReady
end

答案 1 :(得分:0)

config/settings.yml中创建一个文件,如下所示:

development:
  base_uri:  "url"
  default_timeout 360

test:
  base_uri:  "url"
  default_timeout 360

production:
  base_uri:  "url"
  default_timeout 360

然后在您的应用中或者您使用这些值时,使用以下命令访问这些值:

Rails.application.settings.base_uri