我是RoR的初学者,我正在玩弄一个包含6000行数据的数据库。由于一开始的数据太多,因此我在控制器/索引视图中使用它,使索引表仅显示具有唯一项名称的数据行。
@glyphs_test = Glyph.group(:item)
在每一行旁边,我想显示特定项目在整个数据库中出现的次数。当我尝试这样做时,它可以工作,但我不知道如何将其打印到索引上。
Glyph.group(:item).uniq.count
例如,结果包括:
=> {"Eternal Fire" => 8, "Glyph of Adrenaline Rush" => 74} etc...
即使我只能打印出数字,我怎么能把它与表格相匹配?我想我在这里错过了一些关键的东西。我可以通过在show#controller中使用它而不是在索引#控制器中使用它来在单个记录中执行此操作。
@glyph = Glyph.find(params[:id])
@glyphs = Glyph.where(["item = ?", @glyph.item]).order('net_gain ASC')
提前感谢您的任何建议。也许我应该做一些更简单的事情,但必须有一个解决方案。
您可以使用如下所示的内容循环访问结果哈希
@glyph_counts = Glyph.group(:item).uniq.count
@glyph_counts.each do |key, value|
#key is the item, value is the count, using key and value as the object is a hash
# do your printing here
end
或者,如果您正在循环访问字形并尝试从结果中获取计数,则可以执行以下操作
@glyphs = Glyph.all
@glyph_counts = Glyph.group(:item).uniq.count
@glyph.each do |glyph|
#something with your glyph
count = @glyph_counts[@glyph.item]
end