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
4

2 に答える 2

1

中括弧は と同等do...endであり、ワンライナーでより一般的に使用されます。

directory("/var/lib/mysql") { action :delete }

括弧はハッシュの定義にも使用されるため、あいまいさを避けるために括弧を追加する必要があります。

于 2013-08-20T21:25:28.833 に答える
1

と呼ばれるものを使用して述べたように、2つの方法を実行できますblock

directory("/var/lib/mysql") { action :delete }

セミコロンがルビーに存在することを伝えるためだけに、このようにコードを置くことができます;))

directory "/var/lib/mysql" do ; action :delete ; end
于 2013-08-20T22:50:00.900 に答える