我有一个哈希:
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.
如何解决?
答案 0 :(得分:2)
你应该试试
if hsh.any? { |key, value| value.include? c.value }
答案 1 :(得分:1)
尝试hsh.detect { |k,v| v.include? c.value }
答案 2 :(得分:0)
您可以获取“am”键并检查它是否包含您的值。
hsh.fetch("am", []).include?(c.value)
这样即使您没有“am”键,也不会出现错误。
另请注意,您的密钥是字符串。