我正在尝试将一个资源属性的默认值设置为另一个属性的值。
我正在为我正在构建的 tomcat 食谱定义一个包含以下定义的资源。我想拥有可以独立设置的“名称”和“服务名称”属性。如果未设置服务名称,我希望它默认为“名称”提供的任何内容。
以下不符合我的预期:
attribute :name, :kind_of => String, :required => true, :name_attribute => true
attribute :service_name, :kind_of => String, :default => :name
注意第二行末尾的 ":default => :name"。当我在配方中的新块中引用我的资源时
my_tomcat "install tomcat" do
name "foo_bar"
end
属性值被分配为
name = "foo_bar"
service_name = "name"
这不是我所期望的。除非明确设置,否则我希望 service_name 为“foo_bar”。
我试过了
attribute :service_name, :kind_of => String, :default => new_resource.name
attribute :service_name, :kind_of => String, :default => @new_resource.name
但那些不编译。
有没有办法做我想做的事?