我的情况如下(请记住,我不是厨师专家,而且我对我们的实施/环境没有完全的控制权):
foo
的共享食谱/食谱node[:foo][:bar]
integration.rb
,regression.rb
等)来覆盖特定于环境的值。我的问题是我在多个角色中都使用了foo
这个食谱。但是我需要覆盖每个项目和环境的bar
值。
因此,我必须投影ProjectA
和ProjectB
。我想要以下内容:
ProjectA
中担任角色integration
时,我希望node[:foo][:bar]
成为bob
ProjectA
中担任角色regression
时,我希望node[:foo][:bar]
成为jane
ProjectB
中担任角色integration
时,我希望node[:foo][:bar]
成为john
ProjectB
中担任角色regression
时,我希望node[:foo][:bar]
成为smith
我尝试在ProjectA:bar
中定义一个integration
值,然后在override_attributes()
角色的ProjectA
中使用它来设置foo:bar
,但出现错误{ {1}}默认'`,请执行以下操作:
undefined local variable or method
如何进行设置,以便可以在多个角色中使用同一配方,但可以基于环境替代该配方的值?