2017-08-10 73 views
0

如何將數字指定爲sql限制方法,以使限制實際上是所有記錄。我想要有一個靈活的限制範圍,例如scope :females, ->(n) {where(gender: 'Female').limit(n)。如何使用此範圍指定所有記錄?有沒有比females(Model.all.count)更好的方法?爲表中的所有記錄生成sql限制查詢

+1

我個人認爲,如果你要通過限制,然後你可能也只是做'females.limit(7)因爲它比女性(5)更清楚,更隱蔽。 –

回答

1

females(nil)沒有限制條款適用。這是有效的,因爲limit(nil)不適用於任何限制。

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 
+0

詳細。 '範圍:女性, - >(n = nil){where(gender:'Female')。limit(n)}'也可以工作 –

相關問題