Rails 3中常见的服务初始化/帮助程序



假设我正在将Twilio(或任何第三方api)集成到Rails项目中。我已经在Gemfile中由bundler加载了gem,并设置了config/twilio.yml来存储我的api密钥。

要实例化一个新的Twilio客户端,我必须解析该YAML文件,并加载当前Rails.env的任何配置。为了减少每次在config/initializers/twilio.rb 中将配置推送到MyApp::Application.config.twilio上时对该文件的解析

现在,当我需要一个Twilio客户端时,我会遇到冗长的:client = Twilio::REST::Client.new(MyApp::Application.config.twilio['sid'], MyApp::Application.config.twilio['auth'])

我想把它封装在一个助手中,这样就可以从系统的不同部分轻松访问它。有没有一个惯用的地方来定义那个助手?

这可能对您有用:

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

最新更新