私はテーブルの最後のレコードを以下の例のように見つけることができますが、最後にレコードを見つける場合はどうしたらいいですか? (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番目の要素は、インデックス-2有する:
Model.all[-2]
10持続た:
レール5[-2]
と
[-3]
ための最後から二番目の形態において
Model.all[-10]
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
ありがとうございました!できます! :) –