0

私は次のようなハッシュを持っています:

hsh = {"http://localhost:3000/sales?"=>[], "am"=>["Room Service", "Coffee Shop", "Business Center"]} 

そして、c.value に「ルームサービス」が含まれているので、別の変数があります

Room Serviceここで、値がハッシュに存在するかどうかを確認したいのですが、これを使用しましたが、エラーが表示されます。

if hsh.any? {|x| x[:am] == "#{c.value}" }

エラー:

can't convert Symbol into Integer.

それを修正する方法は?

4

3 に答える 3

2

あなたは試してみるべき

if hsh.any? { |key, value| value.include? c.value }
于 2013-02-05T13:17:52.227 に答える
1

試すhsh.detect { |k,v| v.include? c.value }

于 2013-02-05T13:17:21.010 に答える
0

「am」キーを取得して、値が含まれているかどうかを確認できます。

hsh.fetch("am", []).include?(c.value)

このように、「am」キーがなくてもエラーは発生しません。

また、キーは文字列であることに注意してください。

于 2013-02-05T13:16:45.270 に答える