gpt4 book ai didi

Ruby,使用数组写入 YAML 文件

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:56 25 4
gpt4 key购买 nike

我正在尝试在 YAML 配置文件中保存一些变量。

酷!!

但是,当我尝试保存它们时,在 RUBY 中出现错误:

undefined method `[]=' for false:FalseClass (NoMethodError)

我的职能(至少在我的脑海中)应该是:

  1. 配置文件是否存在,如果不存在,新建一个。
  2. 既然我们知道它存在,YAML.open it
  3. 设置新的/覆盖键/值对
  4. 重新写文件

但是,我遇到了上面的错误。

我是 Ruby 的新手(这里是 PHP 大佬),请告诉我我哪里蠢了:)

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

最佳答案

问题是您创建了一个空文件。对于空字符串,YAML 解析器返回 false:

YAML.load('') #=> false

当 YAML 加载程序返回 false 时,只需将 config_file 设置为空哈希:

config_file = YAML.load_file(path_to_file) || {}

关于Ruby,使用数组写入 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28408822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com