2016-06-29 7 views
0
scheitern

Ich habe 3 Knoten, B, C und D. I erfordern ähnliche Assoziationen zwischen C und B und D und BNeo4j rb Vererbung von aktiven Knoten mit Assoziation verursacht rspec

DRY, eher zu sein, als setzen die 'has_many' einzeln auf C und D, habe ich eine Super-Klasse A und fügte hinzu, es den Verein, etwa so:

class A 
    include Neo4j::ActiveNode 
    has_many :out, :related_b_nodes, model_class: :B, type: :some_type 
end 


class B 
    include Neo4j::ActiveNode 
    has_many :in, :related_a_nodes, model_class: :A, origin: :related_b_nodes 
end 

wenn ich von A erben:

class C < A 
end 

class D < A 
end 

der Code funktioniert gut, wenn ich testen Sie es durch die Schienen-Konsole, aber rspec weiterhin fehlschlägt, wird die Meldung angezeigt wird:

Association `related_b_nodes` defined for a second time. 
    Associations can only be defined once (Class#related_b_nodes) (RuntimeError) 

Was könnte das Problem sein?

Antwort

0

Das scheint auf jeden Fall seltsam. Ist der Stacktrace für den Fehler überhaupt hilfreich?

Sie können den Stapel auch immer dann ausgeben, wenn er versucht, die Zuordnung zu definieren, damit Sie nachvollziehen können, warum dies der Fall ist. Etwas wie:

class A 
    include Neo4j::ActiveNode 
    puts 'about to defined related_b_nodes at this point:', caller 
    has_many :out, :related_b_nodes, model_class: :B, type: :some_type 
end 
Verwandte Themen