2017-02-25 1 views
0

So habe ich eine has_one und has_many Beziehung mit Neo4jMit neo4jRb Gem, wie kann ich die Beziehung auf einem has_one Verein erhalten

class Client 

    has_one :out , :room, model_class: :Room,rel_class: :AssignedTo 

end 

class Room 
    has_many :in , :clients, rel_class: :AssignedTo, model_class: :Client 

end 

class AssignedTo 
    include Neo4j::ActiveRel 
    from_class :Client 
    to_class :Room 
    type 'assigned_to' 
    property :from_date, type: DateTime 
    property :to_date , type: DateTime 
end 

ich die assigned_to Beziehung von Raum zu Client room.clients annehmen möchten. each_with_rel funktioniert gut aber ich kann keinen Weg finden, um die Beziehung umgekehrt: client.room.rel Alle Methoden, die ich versuchte client.room.rel, Beziehung, zugewiesene_to etc scheinen nicht zu funktionieren

Antwort

0

Seit client.room ist ein has_one Beziehung, standardmäßig erhält neo4jrb den Assoziations-Proxy und dann das erste (und einzige) Ergebnis und gibt das Objekt zurück. Das ActiveNode-Objekt verfügt nicht über eine .each_with_rel Methode.

Mit der neuesten Version des Neo4jrb-Gems (weiß nicht, welche Version Sie verwenden) können Sie client.room(chainable: true).each_with_rel do |node, rel| tun, die funktionieren sollte, wie .

Die chainable: true Option für has_one Assoziationen sagt Neo4jrb, um einen Assoziations-Proxy zurückzugeben (was Sie immer mit einer has_many Assoziation erhalten).

Verwandte Themen