ruby - 尝试在厨师食谱中包含模块时,Ruby 返回未初始化的常量错误
问题描述
我有一个java/recipes/windows
使用方法调用的配方,win_friendly_path
但它不起作用,因为win_friendly_path
尚未定义。
win_friendly_path
然而定义../windows/libraries/windows_helper.rb
如下:
module Windows
module Helper
def win_friendly_path(path)
path.gsub(::File::SEPARATOR, ::File::ALT_SEPARATOR || '\\') if path
end
我已经在食谱中设置了我的berksfile
和metadata.rb
设置,java (./)
以依赖于windows
食谱。
我不确定如何包含这个模块,所以现在我试图include WindowsHelper
在java/cookbook/windows
配方中使用并收到这个错误:
uninitialized constant #<Class:#<Chef::Recipe:0x00000000029a2188>>::WindowsHelper
我已经尝试了几种变体,现在觉得我花了太多时间来解决问题,所以感谢任何帮助。
更新:将此行插入::Chef::Resource.send(:include, Windows::Helper)
我java/recipes/windows
的食谱会给我以下错误:
Chef::Exceptions::ValidationFailed
----------------------------------
value is a required property
解决方案
尝试这个
include Windows::Helper
推荐阅读
- python - Pyspark:将具有特定时间戳的行插入数据帧
- css - Shopify Schema 未将颜色传递给样式表中的类
- javascript - jQuery .each 通过少量文本输入而不是 javascript .find 函数
- angular8 - 如何在浏览器中不使用 base-href 文件夹名称访问 Angular 8 网站
- java - 如何捕获来自未知 USB OTG 设备的信号?
- sql - 在 sql 列中搜索字符串并需要使用前缀拆分所需的字符串
- flutter - 为什么 GridView 不呈现?
- scala - 窗口重载方法无法在 spark 结构化流 scala 中解决
- mysql - 复合主键中引用外键列时 MySQL 级联更新失败
- html - 如何防止在Django模板中重新提交表单