Rails:获取模型的前n个活动记录对象

Lif*_*nts 4 ruby activerecord ruby-on-rails

我需要一种获取模型的前n个项目的方法。Item.first(n)Item.all[1..n]它将执行此操作,除非它们返回一个数组,而不是一个对象。如何将其作为ActiveRecord对象获取?

irb(main):135:0> Player.where(game_id: 1).class
=> Player::ActiveRecord_Relation    #Ok
irb(main):136:0> Game.first.players.class
=> Player::ActiveRecord_Associations_CollectionProxy    #Ok
irb(main):137:0> Player.where(game_id: 1).first(2).class
=> Array   #Not Ok
Run Code Online (Sandbox Code Playgroud)

我想update_all在返回的玩家集合上运行,而不能在数组上运行。

max*_*ner 5

你做 .limit(n)

结合使用.offset,您将获得分页。