0

配列の現在の反復の名前を使用して辞書の名前を作成する必要があります。

例えば:

sites = ["google", "facebook", "twitter", "stackoverflow"]

sites.each do |site|

  #{site}_success_hash = {}  <-- I need the correct syntax for achieving this result.

   ... populate ... hash

end

したがってgoogle_success_hash、 などの名前の 4 つのハッシュが必要です。

私はこれを理解することができず、それは私を狂気に駆り立てています。

4

2 に答える 2

1

ハッシュを個別の変数に保持するのではなく、単にネストすることを検討しましたか?

このようなもの:

success_hash = {}
sites.each do |site|
  success_hash[site] = #populate hash
end

ただし、要求したことは次のように実行できます (インスタンス変数を使用しても問題ないと仮定します)。

instance_variable_set("@#{variable_name}", :something) (答えはこちらをご覧ください)

于 2013-02-09T23:27:22.110 に答える
0

まず、サイトの文字列の代わりに記号を使用します。

sites = [:google, :facebook, :twitter, :stackoverflow]

次に、これがうまくいくと思います:

sites.each do |site|
  instance_variable_set("@#{site}_success_hash", {})
  # populate @site_success_hash
end

ここでインスタンス変数を設定していることに注意してください。

于 2013-02-09T23:25:12.297 に答える