私は2つのモデル、ユーザとスニペットを持っている:私はスニペットを表示していたとき、私はこの使用してい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
事実、destruction_resは常にtrueを返します。私はスニペットを削除した後にユーザーを保存しようとしました。それも真実を返しました。私は、コードを使用するビューにアクセスするときのことは、次のとおりです。
snippets = user.snippets
それが破壊されている必要がありスニペットを含む完全なリストを返します。しかし、アプリケーションを再起動すると、正しいリストが表示されます。私は間違って何をしていますか?私は何とかデータベースにコミットする必要がありますか?
はい、私が持っていましたメモリ内のコレクション、これは静かなバグでした。私はそれを書き直しましたが、現在はうまくいきますが、オブジェクトがデータベースに「より良く結びついている」ことが予想されます。レッスンは学んだ、仮定をしないでください:) – Geo