Как я могу заполнить переменные экземпляра из хеша конфигурации, который я хочу оставить внутри определения моего класса?У меня есть разработка и production
набор значений, которые я хочу добавить в переменные экземпляра на initialize()
.Как мне это сделать?
Вот что у меня есть:
class Alpha
CONFIG = { development: {mid: '123', uid: 'trial', pin: 'abcde' },
production: {mid: '65432', uid: 'go_go_go', pin: 'kwir7' }
}
def initialize(environment = 'development')
@env = environment
@mid = nil
@uid = nil
@pin = nil
end
end
a = Alpha.new('development)
puts a.inspect
# ==> #<Alpha:0x00007fb1228d6b68 @env="development", @mid=nil, @uid=nil, @pin=nil>
Я хотел бы использовать константу Config
для заполнения трех пустых переменных экземпляра.В идеале я хотел бы установить их внутри initalize()
, однако можно выполнить вызов private method
для установки этих значений.Задача осталась прежней, используя class variable
или constant
, чтобы взять ее, и я не могу этого достичь.Я предполагаю, что парковка такой учетной записи key-value pairs
внутри class definition
, является лучшей практикой для такого приложения.То есть: показатели учетной записи электронной коммерции.
Я пробовал следующее, но, похоже, не удалось получить правильные ссылки на хеш-значения Config
.
@mid = Alpha::Config[environment.to_s][:mid]
Чтобы никто не отказывался от этого поста, на этот вопрос ответили not :
Ruby: определение хеша уровня класса по умолчаниюзначения
Путаница с переменной класса ruby