所以我与neo4j
创建了一个has_one和has_many关系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
我想接受从一个房间到另一个房间的Assigned_to关系 room.clients.each_with_rel工作正常 但我无法找到另一种方式来访问这种关系: client.room.rel 我尝试过client.room.rel,relationship,assigned_to等所有方法似乎都不起作用
答案 0 :(得分:0)
由于client.room
是has_one
关系,默认情况下neo4jrb获取关联代理,然后获取第一个(也是唯一的)结果,返回room
对象。 room
ActiveNode对象没有.each_with_rel
方法。
使用最新版本的Neo4jrb gem(dunno您正在使用哪个版本),您可以client.room(chainable: true).each_with_rel do |node, rel|
执行room.clients.each_with_rel do |node, rel|
,与chainable: true
相同。
has_one
关联的has_many
选项告诉neo4jrb返回一个关联代理(这是$response = $this->json('POST', '/foo/bar');
$response->myCustomAssertion();
关联总是得到的。)