2017-07-31 50 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塊創建一個新的目錄。

相關問題