1
我有兩個型號,用戶和摘錄:DataMapper的刪除作品,但只有重新啓動我的應用程序後,
class User
include DataMapper::Resource
property :id,Serial
...
has n,:snippets
end
class Snippet
include DataMapper::Resource
property :id,Serial
...
belongs_to :user
end
當我顯示的片段,我使用這個:
snippets = user.snippets
而且當我刪除它們時,我使用的是:
snippet = Snippet.first(:user_id => user.id,:id => snip_id)
if snippet
destruction_res = snippet.destroy
...
end
事情是,destroy_res總是返回true。我在刪除代碼段後嘗試保存用戶。它也是如此。事情是,當我訪問使用代碼的視圖時:
snippets = user.snippets
它返回完整列表,包括應該銷燬的代碼片段。但是,如果我重新啓動應用程序,我會看到正確的列表。我究竟做錯了什麼?我應該以某種方式強制提交數據庫?
是的,我有內存中的集合,這是無聲的錯誤。我重寫了它,現在它工作正常,但是,我仍然期望這些對象與數據庫「更好地綁定」。獲得的教訓,不要做假設:) – Geo 2011-01-22 22:08:09