2011-03-31 63 views
0

我有一個與另一個模型(資源)具有has_many關係的模型(用戶)。將爲用戶生成大量關聯資源,但我只希望存儲最新的X記錄。僅存儲X條最近的條目

是否有這樣做比的更合適的方法:給定用戶

  1. 加載所有資源

  2. 如果資源== X然後刪除第一

  3. 添加新紀錄。

TIA,

亞當

+0

你的例子有什麼混亂? – Eric 2011-03-31 18:08:24

+0

它是資源的初始加載嗎?我仍在學習,所以請隨時指出其他改進。 – apchester 2011-03-31 19:16:07

回答

0

使用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 

也許不是最漂亮的銷燬方法,但它給你的想法。