Настройка модели на основе драгоценных камней, которая будет доступна для всех сеансов в Rails - PullRequest
1 голос
/ 03 августа 2011

В настоящее время я использую mixpanel_client gem для доступа к mixpanel API.Я хотел бы иметь возможность сделать это в одном месте:

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

, а затем получить доступ к нему в любом месте приложения.Есть ли идиоматический (или фреймворк-матовый) способ сделать это?Кажется, что делать это каждый раз, когда я хочу сделать запрос, это пустая трата ресурсов и не очень СУХОЙ для загрузки.

Спасибо!

1 Ответ

0 голосов
/ 03 августа 2011

Есть несколько способов сделать это, создать инициализатор в папке инициализатора, чтобы он загружался один раз после загрузки рельсов, затем

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 создаст этот клиент только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...