我正在尝试定义一个实例方法,以便在列表中查找项目的位置。列表为Thing.all.order(:hardness).reverse
。项目在列表中的位置应为def rank
的值。因此,例如,具有第三高'硬度'的“Thing”应该具有rank
值为3.
这就是我的开始:
def rank
Thing.all.order(:hardness).reverse.each_with_index
.....
end
但我在如何完成它上面写了一个空白。我至少走在正确的轨道上了吗?
def hardness
self.defeats - self.wins
end
答案 0 :(得分:1)
不会更容易计算所有更难的记录吗?
def rank
self.class.where('hardness > ?', self.hardness).count + 1
end
全部取决于您如何处理具有相同硬度的物品。