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 回答