我可以在下面的示例中找到表格中的最後一條記錄,但是如果我想在最後找到記錄,例如(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
謝謝!有用! :) –