如何使用ActiveRecord查询除第一条记录以外的所有?
像...一样的东西。
Item.where(:widget_id => 123).all_but_first
我正在运行Rails 3.2。
答案 0 :(得分:12)
我这样做:
Item.where(:widget_id => 123).all[1..-1]
答案 1 :(得分:4)
或者你可以使用非常高限制的偏移和限制。
Item.where(:widget_id => 123).limit(18446744073709551610).offset(1)
请参阅Mysql Offset Infinite rows进行讨论。
答案 2 :(得分:1)
派对有点迟,但如果这对某人有用:
如果你想要一个阵列,我认为offset是你最好的选择,而且最具可读性。
如果您想要恢复关系,可以执行以下操作:STORE_FAST
。
假设您不关心订单。如果你这样做,你当然应该加上它。
答案 3 :(得分:0)
使用范围现在可以完全回答
Use Storyboard ID
但我会建议确保你知道你的意思除了第一个以外的所有内容。你的意思是第一个创建,最新,最低的ID?当您知道这一点时,您可以将排序添加到范围中,例如
class Item < ApplicationRecord
scope all_but_first -> { all[1..-1] }
end
答案 4 :(得分:-1)
添加到Veraticus的答案,您还可以包括您想要订购商品的方式:
Item.where(:widget_id => 123).all[1..-1].order('created_at DESC')
快乐编码:)