0

多くの返信を含む投稿文書があるとします。これらの返信をメモリから削除すると、保持されていないにもかかわらず、それらの返信が削除されたことを確認できるようにしたいと考えています。披露させて:

class Post
    has_many :replies, class_name: 'PostReply', autosave: true
end

post.replies.count
 => 3
post.replies = []
 => [] 
post.replies.last 
 => #<Post...>
# (also note that at this point, #count will return 3 and #length will return 0.)

さらに、Identity Map をオンにすると、この動作が変わることを期待しています。たとえば、最終行はメモリからの応答を使用し、nil を返します。

ここでの私の考えと仮定の何が間違っていますか? どうすれば望ましい動作を得ることができますか? おまけの質問ですが、IRB からの DB クエリを示すログはどこで確認できますか?

ありがとう!

4

1 に答える 1

0

逆関係を追加することによって解決されます。

class Post
  has_many :replies, class_name: "PostReply", autosave: true, inverse_of: :post
end

class PostReply
  belongs_to :post, inverse_of: :replies
end
于 2012-10-10T18:24:45.220 に答える