2011-08-03 80 views
1

我目前使用的mixpanel_client gem訪問mixpanel API在Rails的所有會話。我想能夠在一個地方做到這一點:配置基於GEM模型可用來

config = {'api_key' => 'changeme', 'api_secret' => 'changeme'} 
client = Mixpanel::Client.new(config) 

然後訪問它在整個應用程序的任何地方。有沒有一種慣用的(或框架式的)方式去實現這一點?這似乎是這樣,每次我想提出一個要求是對資源的浪費,而不是非常乾燥啓動。

謝謝!

回答

0

有幾個方法可以做到這一點,創建一個初始化,初始化文件夾下的,所以,這將是一次軌道後載入加載,然後

config = {'api_key' => 'changeme', 'api_secret' => 'changeme'} 
CLIENT = Mixpanel::Client.new(config) 

然後在客戶端不斷將在任何地方你的應用。

否則,您可以創建一個類

class MixPanelClient 
cattr_accessor: client 

def self.client 
    client ||= begin 
    config = {'api_key' => 'changeme', 'api_secret' => 'changeme'} 
    Mixpanel::Client.new(config) 
    end 
end 
end 

MixPanelClient.client只能創建一個客戶端一次。