1

Using Neo4j/Ruby, I would like to get the parent nodes of a node.

// 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
meow
  • 27,476
  • 33
  • 116
  • 177

1 Answers1

0

This should be pretty easy. You can do it in a couple of ways:

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

The association can also easily be has_one if you only expect there to be one parent for each Decision

Brian Underwood
  • 10,746
  • 1
  • 22
  • 34