0
我不是Ruby開發者,並且正在修改Chef食譜。我很好奇,如果可以將以下內容放在一行中。將回調放在同一行
directory "/var/lib/mysql" do
action :delete
end
我嘗試這樣做:
directory "/var/lib/mysql", :action => "delete"
然而,拋出此錯誤:
ArgumentError
-------------
wrong number of arguments (3 for 2)
我已經看到了這個爲好,但這似乎只是尷尬的對我說:
directory "/var/lib/mysql" do action => "delete" end
現在如果調用有兩個參數會怎麼樣。 '目錄「/ var/lib/mysql/data」do owner「mysql」group「mysql」end'。把它轉換成'directory(「/ var/lib/mysql/data」){owner「mysql」group「mysql」}'會導致編譯錯誤。 –
你引用的「參數」實際上是方法調用 - 它們是Ruby代碼的行。你使用參數'「mysql」'調用方法'owner',然後使用參數'「mysql」'調用'group'方法。你需要通過在分隔符之間加上分號來表明這些是單獨的行(而不僅僅是'owner'方法的一長串參數):'{owner「mysql」;組「mysql」}'。 – Grantovich