我是RoR的初学者,我正在玩一个拥有6000行数据的数据库。由于开始时有太多数据,因此我在索引表中仅显示具有唯一项目名称的数据行,方法是在控制器/索引视图中使用它。
@glyphs_test = Glyph.group(:item)
除了每一行,我想显示特定项目在整个数据库中出现的次数。 当我尝试这个时,它可以工作,但我不知道如何将它打印到索引上。
Glyph.group(:item).uniq.count
结果,例如:
=> {"Eternal Fire" => 8, "Glyph of Adrenaline Rush" => 74} etc...
即使我只能在此打印出数字,我怎样才能将它与表格相匹配?我想我在这里缺少一些至关重要的东西。我可以在show#controller中使用它来在单个记录中执行此操作,但不能在index#controller中使用。
@glyph = Glyph.find(params[:id])
@glyphs = Glyph.where(["item = ?", @glyph.item]).order('net_gain ASC')
提前感谢您的任何建议。也许我应该做一些更简单的事情,但必须有一个解决方案。
答案 0 :(得分:0)
您可以使用以下内容迭代结果哈希
@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