我们正在使用带有 Neo4j 的 jRuby on Rails,并且我们遇到了一些非常奇怪的错误。目前,我们有用户能够创建帖子。很少,他们似乎在他们的“帖子”关系中得到了展开的节点,而不是 Post 对象。例如,在控制台中,我迭代了一个用户的帖子,结果如下:
> user.posts.each{ |post| puts post }
#<Post:0x49ca112d>
#<Post:0xc9ddbea>
#<Post:0x7e706c75>
Node[438144]
#<Post:0x769dba83>
这会导致各种问题,因为每当我们尝试访问这些非发布帖子之一的属性或关系时,都会出现这样的错误:
undefined method `[any property or relationship]' for #<Java::OrgNeo4jKernelImplCore::NodeProxy:0x461784b6>
这些裸节点似乎间歇性地添加到人们的“发布”关系中,我可以手动删除该节点,但这似乎充其量只是权宜之计,因为它们一直在被创建。
所以,我的问题是,我如何(1)首先防止这些非 Post 对象被创建,我如何(2)清除我的数据库中的这些对象?