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