5

ルビープログラムに一連の定数を提供するためにパペットを使用しています。プログラムが反復するホスト名の配列を提供する必要があります。

この前に使用していたbashスクリプトでは、単純にpuppet変数として持っていました

hosts => "host1,host2"

これをbashスクリプトに次のように提供しました

HOSTS=<%= hosts %>

明らかに、これはルビーではうまく機能しません-フォーマットで必要です

hosts = ["host1","host2"]

以来

p hosts

puts my_array.inspect

出力を提供する

["host1","host2"]

私はそれらのいずれかを使用することを望んでいました。残念ながら、私は一生、それを機能させる方法を理解することはできません. 私は次のそれぞれを試しました:

<% p hosts %>
<% puts hosts.inspect %>

関数呼び出しの前に「function_」を付ける必要があると彼らが示した場所を見つけました...それはうまくいかないようです。私は反復モデルに落ち着きました:

[<% hosts.each do |host| -%>"<%=host%>",<% end -%>]

これは機能し、私に与えます

["host1","host2",]

しかし、末尾のコンマはだらしがありません。全体がだらしない感じ。誰かがより良い方法を持っていますか?または、私が行ったことは最良の選択肢ですか?

4

3 に答える 3

3

Ruby では、大括弧の間で %w ショートカットを使用して配列を初期化できます。これは次のようになります。

hosts = %w{<%= hosts.join(' ') %>}
于 2013-04-12T11:16:16.133 に答える
0

使用しto_jsonます。

hosts.to_json
=> "[\"host1\",\"host2\"]"
于 2012-08-10T22:22:22.653 に答える