我可以在下面的示例中找到表格中的最后一条记录,但是如果我想在最后找到记录,例如(last-1)还是(last-2)..? 我在我的每一个循环的例子:Rails:如何在最后找到记录?
Table.find(:last, :conditions => {:dogovor_id => p.id}).id
我可以在下面的示例中找到表格中的最后一条记录,但是如果我想在最后找到记录,例如(last-1)还是(last-2)..? 我在我的每一个循环的例子:Rails:如何在最后找到记录?
Table.find(:last, :conditions => {:dogovor_id => p.id}).id
Table.where(:dogovor_id => p.id).order("id DESC").first # last
Table.where(:dogovor_id => p.id).order("id DESC").offset(1).first # last - 1
Table.where(:dogovor_id => p.id).order("id DESC").offset(2).first # last - 2
另一种更容易的方法是记住:Model.last(2).first
我宁愿这比接受的 –
您可以使用负的索引。
第二到最后一个元素的索引为-2:
Model.all[-2]
将第10到持续:
Model.all[-10]
在导轨5种为[-2]
和[-3]
倒数第二形式have aliases。所以,如果你想,用这个:
Model.second_to_last
Model.third_to_last
即使接受的答案工作:
Table.where(:dogovor_id => p.id).order("id DESC").first # last
Table.where(:dogovor_id => p.id).order("id DESC").offset(1).first # last - 1
Table.where(:dogovor_id => p.id).order("id DESC").offset(2).first # last - 2
“第一”的方法是一个数组的方法,所以就表现其更好地使用“限制”的方法是一个ActiveRecord方法并将LIMIT子句附加到SQL查询:
Table.where(dogovor_id: p.id).order(id: :desc).offset(1).limit(1) # last - 1
谢谢!有用! :) –