gpt4 book ai didi

ruby - 在 Chef 的提供者的 default.rb 中使用 File::read

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:08 24 4
gpt4 key购买 nike

我正在尝试创建一个 LWRP,它将调用在其自身中定义的资源。我的 Recipe 结构如下:

enter image description here

在机器 Recipe 的提供者中,我有如下代码片段:

require 'chef/provisioning'  # driver for creating machines
require '::File'

def get_environment_json
@@environment_template = JSON.parse(File::read(new_resource.template_path + "environment.json"))
return @@environment_template
end

代码只是试图读取一个 json 文件,我正在使用 File::read 来读取它。

我不断收到如下错误:

加载错误

无法加载这样的文件 --::File

有人知道如何在我的 LWRP 提供程序中使用 File::read 吗?

最佳答案

好的,所以前面两个答案都对了一半。你有两个问题。首先,您不能要求 ::File,因为它已经是 Ruby 的一部分。这是你错误的原因。

其次,如果您调用 File.read,您将获取 Chef 的 File 而不是 ruby​​ 的。您需要执行 ::File.read 才能使用 Ruby 的 File 类。

关于ruby - 在 Chef 的提供者的 default.rb 中使用 File::read,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29973818/

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