2017-07-31 54 views
-1

不知道如何使用数组创建厨师的Sales文件夹的多个 子文件夹。创建多个子文件夹同一时间厨师

sales = 'Sales' 
salesfolders = %w{'NewClients', 'MarketingMaterial', 'SalesTools', 'ClientInformation'} 


directory "#{directory}\\#{salesfolders}" 
    owner 'root' 
    group 'root' 
    mode '0755' 
    recursive true 
    action :create 
end ' 

}

回答

3

OK - 有几件事情来看待。首先,salesfolders目前不是一个有效的数组。你要定义它要么是这样的:

salesfolders = ['foo', 'bar'] 

或像这样:

salesfolders = %w(foo bar) 

后者语法是一个字符串数组速记 - 这是一样的第一个例子,但较少的语法糖。

一旦你有一个很好格式化的数组,你需要遍历该数组,并为其中的每个项目运行一些代码。 - 如果我们看一下我们前面的例子

salesfolders.each do |salesfolder| 
    # do something with salesfolder 
end 

注意,有一个salesfolder变量集出现,这将是对数组的每个项目不同的:在Ruby中,这是通过阵列上调用.each,像这样实现的,该代码块第一次运行时将为foo,第二个bar,依此类推。

考虑到这一点,如果我们想请针对每个salesfolder你的厨师代码,我们可以做这样的事情:

salesfolders.each do |salesfolder| 
    directory "/something/else/here/#{salesfolder}" do 
    owner 'root' 
    group 'root' 
    mode '0755' 
    recursive true 
    action :create 
    end 
end 

对于我们的阵列中的每个salesfolder,我们将运行directory块创建一个新的目录。

相关问题