如何在列表中找到项目的位置?

时间:2015-02-14 21:19:58

标签: ruby-on-rails ruby list ruby-on-rails-4 model

我正在尝试定义一个实例方法,以便在列表中查找项目的位置。列表为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

1 个答案:

答案 0 :(得分:1)

不会更容易计算所有更难的记录吗?

def rank
  self.class.where('hardness > ?', self.hardness).count + 1
end

全部取决于您如何处理具有相同硬度的物品。