我遇到了在库代码中使用“搜索”方法的问题: 库/ helpers.rb
Bcpc
Helper
extend self
def help(node=node)
search(:node, "....")
end
end
end
Chef::Recipe.send(:include, Bcpc::Helper)
Chef :: Resource.send(:include,Bcpc :: Helper),用于使用模块方法的食谱。
然后在这样的食谱中使用此模块方法: BCPC :: Helper.help(节点) 当我运行它时,它会报告在Bcpc :: Helper:Module
中未定义搜索方法的错误我发现搜索方法是在Chef :: Search :: Query类中定义的。然后我尝试在我的库代码中使用搜索的全名,例如:Chef :: Search :: Query.search(:node,“....”)。 但它报告在Chef :: Search :: Query中未定义搜索。 此搜索方法是否应该是可以使用其类名调用的静态方法?
在这种情况下,如何在库代码中使用Chef提供的“搜索”方法? 谢谢!
答案 0 :(得分:9)
你想要这样的东西。
Chef::Search::Query.new.search(:node, 'foo:bar') do |n|
# something with n
end