2012-01-31 39 views
1

假設我將Twilio(或任何第三方API)集成到Rails項目中。我已經在我的Gemfile中使用了bundler加載的寶石,並且我已經設置了config/twilio.yml來存儲我的api密鑰。Rails 3中的語言服務初始化/幫助程序?

爲了實例化一個新的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'])

我想換行了在一個幫助器的某個地方,所以它很容易從系統的不同部分訪問。有沒有一個慣用的地方來定義幫手?

回答

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