[英]How to be with the update_all method after the last method?
如果編寫以下代碼:
User.last(5).update_all(smth: true)
然后,預期的錯誤將作為響應:
NoMethodError (undefined method `update_all' for #<Array:0x00007fd74b25a290>)
但是,如果我需要獲取最后N條記錄並更新所有記錄,該怎么辦?
我有一個列表( User.all
)。 從此列表中,我無法觸摸前M個條目。 也就是說,我需要更新這些條目:
n = User.count - m
User.last(n).update_all(smth: true)
如果只想更新最后n
條記錄,則可以使用帶有limit
order
:
User.order(created_at: :desc).limit(n).update_all(smth: true)
但是,在您的特定情況下,即,如果您要更新除前m
之外的所有記錄,則有一種更適合您的SQL offset
合適方法:
User.order(created_at: :asc).offset(m).update_all(smth: true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.