假设我正在将Twilio(或任何第三方API)集成到Rails项目中。我已经在我的Gemfile中使用bundler加载了gem,并且我已经设置config/twilio.yml
来存储我的api密钥。
要实例化一个新的Twilio客户端,我将不得不解析该YAML文件并加载当前Rails.env
的配置。每次我将配置推送到MyApp::Application.config.twilio
中的config/initializers/twilio.rb
现在,当我需要一个Twilio客户端时,我面对的是详细信息:client = Twilio::REST::Client.new(MyApp::Application.config.twilio['sid'], MyApp::Application.config.twilio['auth'])
我想把它包装在某个帮助器中,以便从系统的不同部分轻松访问。是否有一个惯用的地方来定义帮助者?
答案 0 :(得分:2)
这可能对您有用:
class MyApp::Application
def self.twilio_client
Twilio::REST::Client.new(config.twilio['sid'], config.twilio['auth'])
end
end
我通常在lib/my_company/twilio_integration.rb
中定义类似的东西,它定义了第三方集成所需的一切,包括MyCompany::TwilioIntegration.client
。
也许更好的位置位于app/models/twilio_integration.rb
,可以定义TwilioIntegration.client