以外にも、以外のActiveRecordを使用して最初のレコードをクエリするにはどうすればよいですか?Rails:最初のレコード以外のすべてをクエリしますか?
のような何か...
Item.where(:widget_id => 123).all_but_first
私はRailsの3.2を実行していますよ。
以外にも、以外のActiveRecordを使用して最初のレコードをクエリするにはどうすればよいですか?Rails:最初のレコード以外のすべてをクエリしますか?
のような何か...
Item.where(:widget_id => 123).all_but_first
私はRailsの3.2を実行していますよ。
私はこのようにそれを行うだろう:
Item.where(:widget_id => 123).all[1..-1]
また、あなたがオフセットを使用し、非常に高いリミットで制限されることがあります。
Item.where(:widget_id => 123).limit(18446744073709551610).offset(1)
Mysql Offset Infinite rowsを参照してください。スコープ付き
これは今まさに
class Item < ApplicationRecord
scope all_but_first -> { all[1..-1] }
end
に答えすることができますしかし、私はあなたが「すべてが、最初の」で何を意味するか知っていることを確認すること助言します。最初に作成された、最新の、最低のIDを意味しますか?そのことを知ったら、注文をスコープに追加することができます。
scope :all_but_first, -> { order(created_at: :desc)[1..-1] }
これは(おそらくちょうどこの正確なコードでしょう)私はこれを扱うのが最も簡単で明白な方法だと思います。 –
これは 'ActiveRecord_Relation'ではなく' Array'を返します。 – davideghz