在我的厨师食谱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?
答案 0 :(得分:0)
在评估任何配方文件之前评估所有属性文件。因此,当您的配方代码运行时,尚未安装gem。即使它已经存在,它也不会包含在您的属性文件中,因此在那里不可用。至于如何修复它,这是一个艰难的。我建议你将属性设置代码移出属性文件并进入配方。一般来说,我不赞成,但有时它是不可避免的。