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.)

我进一步希望这种行为会随着身份映射的开启而改变。例如,最后一行将使用内存中的回复,并返回 nil。

我的想法和假设有什么不正确的?如何获得所需的行为?还有一个额外的问题,我在哪里可以看到显示来自 IRB 的数据库查询的日志?

谢谢!

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 回答