最近我升级到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
方法也不起作用。我一直在阅读文档,看看这两种方法是否已经从新版本中弃用,但到目前为止还没有运气。
答案 0 :(得分:1)
在阅读本答复的其余部分之前,您可能需要阅读upgrade guide。
rels
关系未添加到替换旧API中的旧Neo4j::Core::Node
对象的Node
对象中。我相信我们在rels
中也有ActiveNode
方法。
如果您使用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查询