对表中的所有记录进行sql限制查询

时间:2017-08-10 23:47:40

标签: ruby-on-rails

如何指定sql限制方法的编号,使限制实际上是所有记录。我想要一个具有灵活限制的范围,例如scope :females, ->(n) {where(gender: 'Female').limit(n)。使用此范围如何指定所有记录?有没有比females(Model.all.count)更好的方式?

2 个答案:

答案 0 :(得分:1)

females(nil)是否应用了限制条款。这是有效的,因为limit(nil)不适用。

答案 1 :(得分:1)

也许这会有所帮助:

scope :females, ->(n=nil) do
  if n.present?
    where(gender: 'Female').limit(n)
  else
    where(gender: 'Female')
  end
end

然后:

Yourclass.females(10)   #=> reuturn 10 female records
Yourclass.females       #=> reuturn all female records