Как сделать переменную доступной через приложение
У меня есть переменная, назначенная так:
cryptsy = Cryptsy::API::Client.new(key, secret)
Как я могу сделать эту переменную доступной через приложение?
В настоящее время он находится в контроллере приложений, но я использую гем GRAPE для создания простого API. Мне нужно иметь доступ к переменной в /app/api/v1/bla.rb и другим файлам в папке v1.
3 ответа
Вы можете создать инициализатор для создания экземпляра при загрузке приложения. В config/application.rb сделать что-то вроде
require 'cryptsy/api'
module YourApp
Cryptsy = Cryptsy::API::Client.new(key, secret)
...
end
Это даст вам универсально доступный экземпляр этого объекта.
Вы можете добавить следующий код в файл app_root/config/initializers/cryptsy.rb
require 'cryptsy-api' # this line might be needed
$cryptsy = Cryptsy::API::Client.new(key, secret)
тогда вы можете получить доступ $cryptsy
через приложение.
Как насчет создания класса в lib и добавления его туда. Обязательно добавьте lib в путь автозагрузки в config/application.rb
class Cryptsy
def self.client
@cryptsy ||= Cryptsy::API::Client.new(key, secret)
end
end
И где бы вы ни захотели его использовать, вы можете позвонить
Cryptsy.client