2011-05-26 186 views
1

我需要这方面的帮助2搜索字符串...Ruby on Rails的哈希

我有一个哈希这样的:

@ingredients = Hash.new 
@ingredients[1] = "Biscottes Mini(recondo)" 
@ingredients[2] = "Abadejo" 
@ingredients[3] = "Acelga" 
@ingredients[4] = "Agua de Coco" 
@ingredients[5] = "Ajo" 
@ingredients[6] = "Almidón de Arroz" 
@ingredients[7] = "Anillos Con Avena Integral cheerios (nestle)" 
@ingredients[8] = "Apio" 

我需要寻找到散列,以便找到“Biscottes迷你(recondo)“当我写”scotte“

有些帮助吗?

Thk!

回答

2

为什么你在这里使用哈希而不是数组?你似乎没有使用除整数之外的其他键。

无论如何,该解决方案同时适用于数组和哈希:

search_term = 'scotte' 
# you could also use find_all instead of select 
search_results = @ingredients.select { |key, val| val.include?(search_term) } 
puts search_results.inspect 

http://ruby-doc.org/core/classes/Enumerable.html#M001488

+0

key.include?('scotte') - > val.include?('scotte') – 2011-05-26 14:58:42

+0

当然 - 修复它 – 2011-05-26 15:02:18

1

您可以在一个哈希调用select(或find如果你只是想在第一场比赛),然后传递一个评估是否将键/值包含在结果散列中的块。该块将键和值作为参数传递,以便您可以评估键或值是否匹配。

search_value = "scotte" 
@ingredients.select { |key, value| value.include? search_value } 
相关问题