【发布时间】:2011-10-19 18:32:45
【问题描述】:
Solr 的 Sunspot gem 有一个方法需要一个包含 2 个元素的块:
search.each_hit_with_result do |hit,result|
我正在使用它来构建一个新的结果哈希,如下所示:
results = Hash.new
search.each_hit_with_result do |hit,result|
results[result.category.title] = hit.score
end
这很酷,但我不禁想到有一种更“红宝石”的方式来做这件事,我一直在研究很棒的 inject 方法。我认为应该可以进行以下操作,但我无法让它在语法上起作用。有人有什么想法吗?
search.each_hit_with_result.inject({})
{|newhash,|hit,result||newhash[result.category.title]=hit.score}
【问题讨论】:
-
将搜索映射到一个标题数组并为 2 个元素数组评分,然后在该数组数组上使用
Hash[foo]。今天晚些时候我会写这个作为正确的答案。 -
没关系,tokland 打败了我!
标签: ruby