我使用neo4j和neo4jrb。在irb中我使用此查询:
p = Tag.as(:t).where("t.value = 'Andre'").names(:n).pluck(:n)
我希望从类型为Person的p.first
获得一个模型。但结果我只得到CypherNode 3 (53012760)
。 3是来自人物模型的ID。但我无法得到模型,我做错了什么?
这是我的模特和关系:
class Tag
include Neo4j::ActiveNode
property :value, index: :exact, constraint: :unique
... more outs ....
has_many :out, :names, rel_class: Names
end
class Names
include Neo4j::ActiveRel
from_class Tag
to_class Person
type 'name'
end
class Person
include Neo4j::ActiveNode
has_many :in, :named, rel_class: Names
end
答案 0 :(得分:1)
当我在本地尝试(neo4j
gem version 6.0.1)时,它可以正常工作,但有些更改,以便在我将其粘贴到irb时不会失败。具体来说,我将符号而不是类传递给rel_class
,from_class
和to_class
,以便不会加载订单问题:
class Tag
include Neo4j::ActiveNode
property :value, index: :exact, constraint: :unique
has_many :out, :names, rel_class: :Names
end
class Names
include Neo4j::ActiveRel
from_class :Tag
to_class :Person
type 'name'
end
class Person
include Neo4j::ActiveNode
has_many :in, :named, rel_class: :Names
end
如果这没有帮助,您可以尝试从模型中删除其他代码,看看是否还有其他问题导致问题。
此外,您的模型是否都在app/models
下且名称正确?