#<Neo4j::Core::Node:xxxxxxxx> 的未定义方法 `rels`
undefined method `rels` for #<Neo4j::Core::Node:xxxxxxxx>
最近我升级到了 Neo4j 3.1.3、Neo4j.rb 8.0.13 和 Neo4j-core 7.1.2。此后,rels 方法抛出 undefined method 'rels' for #<Neo4j::Core::Node:xxxxxxxx>
错误。
我的查询是,
student.rels(dir: :outgoing, type: :enrolled_in).count
与rels
方法一起,create_rel
方法也不起作用。我一直在阅读文档,看看这两种方法是否已从较新的版本中弃用,但到目前为止还没有成功。
您可能想先阅读 upgrade guide,然后再阅读此答案的其余部分。
rels
关系未添加到替换旧 API 中的旧 Node
对象的 Neo4j::Core::Node
对象。我相信我们在 ActiveNode
.
中也有一个 rels
方法
如果您使用的是ActiveNode
,替代方法是定义一个关联。类似于:
class Student
include Neo4j::ActiveNode
has_many :out, :all_nodes, type: :enrolled_in, model_class: false
end
# Then you can do:
student.all_nodes.count
然而,您只关注 enrolled_in
关系这一事实让我认为这可能会转到特定节点(也许 Course
?)。如果是这样,我建议这样做:
class Course
include Neo4j::ActiveNode
end
class
include Neo4j::ActiveNode
has_many :out, :courses, type: :enrolled_in
# model_class of `Course` will be assumed based on the association's name
end
如果您不使用 ActiveNode
而是直接使用 neo4j-core
gem,您应该使用 Cypher 查询
最近我升级到了 Neo4j 3.1.3、Neo4j.rb 8.0.13 和 Neo4j-core 7.1.2。此后,rels 方法抛出 undefined method 'rels' for #<Neo4j::Core::Node:xxxxxxxx>
错误。
我的查询是,
student.rels(dir: :outgoing, type: :enrolled_in).count
与rels
方法一起,create_rel
方法也不起作用。我一直在阅读文档,看看这两种方法是否已从较新的版本中弃用,但到目前为止还没有成功。
您可能想先阅读 upgrade guide,然后再阅读此答案的其余部分。
rels
关系未添加到替换旧 API 中的旧 Node
对象的 Neo4j::Core::Node
对象。我相信我们在 ActiveNode
.
rels
方法
如果您使用的是ActiveNode
,替代方法是定义一个关联。类似于:
class Student
include Neo4j::ActiveNode
has_many :out, :all_nodes, type: :enrolled_in, model_class: false
end
# Then you can do:
student.all_nodes.count
然而,您只关注 enrolled_in
关系这一事实让我认为这可能会转到特定节点(也许 Course
?)。如果是这样,我建议这样做:
class Course
include Neo4j::ActiveNode
end
class
include Neo4j::ActiveNode
has_many :out, :courses, type: :enrolled_in
# model_class of `Course` will be assumed based on the association's name
end
如果您不使用 ActiveNode
而是直接使用 neo4j-core
gem,您应该使用 Cypher 查询