使用Neo4j/Ruby,我想获得节点的父节点。
// i can get the children node, but is there any way to access the parent nodes"
// @decision.next.each.map{|r|...}
// like:
// @decision.parents...
class Decision
include Neo4j::ActiveNode
property :title, type: String
property :text, type: String
property :ending, type: Boolean, default: nil
property :rooting, type: Boolean, default: nil
has_many :out, :next, rel_class: :Action, model_class: :Decision
validates_uniqueness_of :input
end
class Action
include Neo4j::ActiveRel
before_save :check_input_type
from_class :Decision
to_class :Decision
type 'action'
property :input, type: Integer
property :expected_input, type: Integer
validates_presence_of :input
creates_unique :none
end
这应该很容易。你可以通过以下几种方式做到这一点:
class Decision
include Neo4j::ActiveNode
# ... properties
has_many :out, :next, rel_class: :Action, model_class: :Decision
# The straightforward way
has_many :in, :parents, rel_class: :Action, model_class: Decision
# Using `origin`
has_many :in, :parents, origin: :next, model_class: :Decision
end
如果您只希望每个Decision
有一个父级,则关联也可以很容易地为has_one