我怎样才能找到一个项目在列表中的位置?
How can I find an item's place in a list?
我正在尝试定义一个实例方法来查找项目在列表中的位置。该列表是 Thing.all.order(:hardness).reverse
。该项目在列表中的位置应为 def rank
的值。因此,例如,具有第三高 'hardness' 的 "Thing" 的 rank
值应为 3。
这是我开始的:
def rank
Thing.all.order(:hardness).reverse.each_with_index
.....
end
但是我对如何完成它一无所知。我至少在正确的轨道上吗?
def hardness
self.defeats - self.wins
end
不是更容易计算所有更难的记录吗?
def rank
self.class.where('hardness > ?', self.hardness).count + 1
end
一切都取决于你想如何处理相同硬度的物品。
我正在尝试定义一个实例方法来查找项目在列表中的位置。该列表是 Thing.all.order(:hardness).reverse
。该项目在列表中的位置应为 def rank
的值。因此,例如,具有第三高 'hardness' 的 "Thing" 的 rank
值应为 3。
这是我开始的:
def rank
Thing.all.order(:hardness).reverse.each_with_index
.....
end
但是我对如何完成它一无所知。我至少在正确的轨道上吗?
def hardness
self.defeats - self.wins
end
不是更容易计算所有更难的记录吗?
def rank
self.class.where('hardness > ?', self.hardness).count + 1
end
一切都取决于你想如何处理相同硬度的物品。