我不是任何方式的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
答案 0 :(得分:1)
大括号相当于do...end
,更常用于单行:
directory("/var/lib/mysql") { action :delete }
为避免歧义,需要添加括号,因为大括号也用于定义哈希值。
答案 1 :(得分:1)
你可以采用两种方式,正如所谓的block
directory("/var/lib/mysql") { action :delete }
你可以用这种方式代码,只是告诉你ruby中存在分号;)
directory "/var/lib/mysql" do ; action :delete ; end