2017-02-25 22 views
0

上の関係を得るのですだから私は、私はクライアントに room.clientsを部屋からASSIGNED_TO関係を受け入れるようにしたいのNeo4j私はhas_oneの関連

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 

とhas_oneのとhas_manyの関係を作成する方法neo4jRb宝石を使用。 each_with_relはうまく動作しますが の関係にアクセスする方法が見つかりません: client.room.rel 私が試したすべてのメソッドclient.room.rel、relationship、assigned_toなどは動作していないようです

答えて

0

client.roomは01ですの関係、デフォルトでは、neo4jrbはアソシエーションプロキシを取得してから、最初の(そして唯一の)結果を抜き取り、roomオブジェクトを返します。 room ActiveNodeオブジェクトには.each_with_relメソッドがありません。

最新のバージョンのNeo4jrb gem(使用しているバージョンはありません)を使用すると、room.clients.each_with_rel do |node, rel|と同じように動作するclient.room(chainable: true).each_with_rel do |node, rel|を実行できます。

has_oneのオプションは、neo4jrbにアソシエーションプロキシ(これは常にhas_manyアソシエーションを取得する)を返すように指示します。

関連する問題