0
我有一個與另一個模型(資源)具有has_many關係的模型(用戶)。將爲用戶生成大量關聯資源,但我只希望存儲最新的X記錄。僅存儲X條最近的條目
是否有這樣做比的更合適的方法:給定用戶
加載所有資源
如果資源== X然後刪除第一
添加新紀錄。
TIA,
亞當
我有一個與另一個模型(資源)具有has_many關係的模型(用戶)。將爲用戶生成大量關聯資源,但我只希望存儲最新的X記錄。僅存儲X條最近的條目
是否有這樣做比的更合適的方法:給定用戶
加載所有資源
如果資源== X然後刪除第一
添加新紀錄。
TIA,
亞當
使用after_create回調刪除其他項?
class Resource < ActiveRecord::Base
KEEP_RECORDS = 8
after_create :trim_similar
private
def trim_similar
self.class.where(:user_id => self.user_id).offset(KEEP_RECORDS).each { |r| r.destroy }
end
end
也許不是最漂亮的銷燬方法,但它給你的想法。
你的例子有什麼混亂? – Eric 2011-03-31 18:08:24
它是資源的初始加載嗎?我仍在學習,所以請隨時指出其他改進。 – apchester 2011-03-31 19:16:07