2016-03-22 5 views
1

Mit Neo4j/Ruby möchte ich die übergeordneten Knoten eines Knotens abrufen.Abrufen von Elternknoten ohne ausdrückliche Deklaration einer Beziehung

// 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 

Antwort

0

Dies sollte ziemlich einfach sein. Sie können es in ein paar Möglichkeiten:

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 

Der Verein kann leicht auch has_one sein, wenn Sie nur dort erwarten ein Elternteil zu sein, für jeden Decision

Verwandte Themen