簡體   English   中英

配置基於gem的模型以供Rails中的所有會話使用

[英]Configuring a gem-based model to be available to all sessions in Rails

我目前正在使用mixpanel_client gem來訪問mixpanel API。 我希望能夠在一個地方做到這一點:

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

然后在整個應用中的任何位置訪問它。 有沒有慣用的(或框架式的)解決方案? 似乎每次我要發出請求時都這樣做,這是在浪費資源,而且啟動起來不是很干。

謝謝!

有幾種方法可以執行此操作,在Initializer文件夾下創建一個Initializer,以便在裝入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只會創建一次該客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM