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

时间:2017-01-04 18:36:14

标签: ruby-on-rails ruby activerecord

我需要一种方法来获取模型的前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

我想在返回的玩家集合上运行update_all,我不能在阵列上执行此操作。

1 个答案:

答案 0 :(得分:4)

你做.limit(n)

将此与.offset相结合,您就会有分页。