2016-06-29 4 views
0

を失敗する私は3つのノード、B、CおよびD Iが乾燥的にC及びB、及びDとBのNeo4j RB継承はRSpecのが

間で同様の関連付けを必要とするのではなく、パッティングを有します個別にCとDの「has_manyのは」私は、スーパークラスAを作成し、そのように、そこに関連付けを追加しました:私は継承すると

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 

class C < A 
end 

class D < A 
end 

をコードは大丈夫際に働きます私レールコンソールでテストしますが、rspecは引き続き失敗し、メッセージを表示します。

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

問題はありますか?

答えて

0

間違いなく間違っているようです。エラーのスタックトレースはまったく役に立ちますか?

アソシエーションを定義しようとするときはいつでもスタックを出力して、なぜこれが起こっているのかを追跡することができます。次のようなもの:

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