我正在尝试在YAML配置文件中保存一些变量。
酷!!
但是,当我尝试保存它们时,我在RUBY中收到错误:
undefined method `[]=' for false:FalseClass (NoMethodError)
我的功能应该(至少在我的脑海中)是:
但是,我收到了上面的错误。
我是Ruby的新手(PHP bloke在这里),请告诉我在哪里我很傻:)
def write_to_file( path_to_file, key, value, overwrite = true )
if !File.exist?(path_to_file)
File.open(path_to_file, 'a+')
end
config_file = YAML.load_file( path_to_file)
config_file[key] = value
File.open(path_to_file, 'w') { |f| YAML.dump(config_file, f) }
# I tried this commented code below too, same error..
# {|f| f.write config_file.to_yaml }
end
答案 0 :(得分:3)
问题是您创建了一个空文件。并且YAML解析器返回false
以获取空字符串:
YAML.load('') #=> false
如果是config_file
,只需将false
设置为空哈希:
config_file = YAML.load_file(path_to_file) || {}