我目前正在使用mixpanel_client gem访问mixpanel API。我希望能够在一个地方做到这一点:
config = {'api_key' => 'changeme', 'api_secret' => 'changeme'}
client = Mixpanel::Client.new(config)
然后在整个应用中的任何位置访问它。是否有惯用(或框架 - matic)方式来解决这个问题?似乎每次我想提出请求都是这样做是浪费资源而不是非常干的启动。
谢谢!
答案 0 :(得分:0)
有几种方法可以在初始化程序文件夹下创建初始化程序,以便在加载rails后加载一次,然后
config = {'api_key' => 'changeme', 'api_secret' => 'changeme'}
CLIENT = Mixpanel::Client.new(config)
然后,您的应用程序中的任何位置都可以使用CLIENT常量。
否则你可以创建一个类
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只会创建一次该客户端。