В моем методе initialize я пытаюсь написать его, чтобы я мог передать либо хеш, либо объект yaml для инициализации значений атрибута.
Мой файл yaml выглядит следующим образом:
defaults: &defaults
host: localhost
port: 4565
timeout: 3
development:
<<: *defaults
test:
<<: *defaults
staging:
<<: *defaults
production:
<<: *defaults
В настоящее время у меня есть это:
def initialize(options)
if options.respond_to? "has_key" && options.has_key? "defaults"
config = options["defaults"]
else
config = options
end
@hostname = config[:hostname]
@port = config[:port]
@timeout = config[:timeout]
end
Это в настоящее время не работает для меня, я получаю эту ошибку:
unexpected tSTRING_BEG, expecting keyword_then or ';' or '\n'
if options.respond_to? "has_key" && options.has_key? "defaults"
- Как я могу загрузить правильную среду также?(тестирование, разработка, производство)
- Как вывести ошибку, если один из ключей отсутствует?(или, по крайней мере, укажите основные, которые мне нужны, например, имя хоста, порт)