要求库具有厨师食谱的属性

时间:2015-03-23 14:29:23

标签: ruby chef require cookbook

在我的厨师食谱attributes/default.rb中,我有以下内容:

default['dt'] = ActiveSupport::TimeZone.new('America/Chicago').local_to_utc(Time.now)

recipe/default.rb我有

chef_gem 'active_support/time'

如果我理解正确,那将与

相同
gem install 'active_support/time'
require 'active_support/time'

但是在运行食谱时我得到了

NameError
---------
uninitialized constant Class::TZInfo

如何解决NameError?

1 个答案:

答案 0 :(得分:0)

在评估任何配方文件之前评估所有属性文件。因此,当您的配方代码运行时,尚未安装gem。即使它已经存在,它也不会包含在您的属性文件中,因此在那里不可用。至于如何修复它,这是一个艰难的。我建议你将属性设置代码移出属性文件并进入配方。一般来说,我不赞成,但有时它是不可避免的。