gpt4 book ai didi

ruby - 在 neo4j.rb 中使用 has_many "both"

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:29 26 4
gpt4 key购买 nike

我正在寻找一种方法来建立 User 之间的关系,您可以在其中使用 inout两者同时在 Neo4j.rb 中。

这是我目前所拥有的:

class User
include Neo4j::ActiveNode

has_many :both, :friends, type: :connection, model_class: User
has_many :out, :following, type: :connection, model_class: User
has_many :in, :followers, type: :connection, model_class: User
end

以下作品:

me = User.create
you = User.create

me.followers << you
me.followers.to_a
#=> [you]

you.following.to_a
#=> [me]

与上述相反的方法也适用。但这似乎不起作用:

me.friends << you
you.following.to_a
#=> []

或者:

me.followers.to_a
#=> []

但是,这样做:

me.following.to_a
#=> [you]

最佳答案

这是预期的行为。 Neo4j 不允许您创建没有方向的关系。因此,both关联类型仅用于查询(即查询时指定关系,但不指定去往/来自节点的方向)。

由于 Neo4j 关系总是有方向的,当您使用 both 关联创建关系时,它会将它们创建为 out 关系。请参阅文档中的此部分:

https://github.com/neo4jrb/neo4j/wiki/Neo4j-v3-Declared-Relationships#all-has_manyhas_one-method-calls-begin-with-declaration-of-direction

现在想想,我想知道 Neo4j.rb 是否不应该让您使用 both 关联创建关系。你怎么认为?我也会创建一个 Github 问题

关于ruby - 在 neo4j.rb 中使用 has_many "both",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29518353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com