2014-11-05 102 views
1

我有一个应用程序使用Neo4j后端一个模型和PostgreSQL后端所有其他模型。这里是Neo4j模型:关联Neo4j :: ActiveNode模型与ActiveRecord模型

class Concept 
    include Neo4j::ActiveNode 
    property :name 

    def references 
    Reference.where(concept_uuid: uuid) 
    end 
end 

这里是一个ActiveRecord模型。引用表上有一个content_uuid:

class Reference < ActiveRecord::Base 
    def concept 
    Concept.where(uuid: concept_uuid).first 
    end 
end 

这工作,我可以这样做Reference.first.conceptConcept.first.references事情没有发生任何事件。我想,虽然,我可以做一些简单的像这个:

class Reference < ActiveRecord::Base 
    belongs_to :concepts 
end 

class Concept < ActiveRecord::Base 
    include Neo4j::ActiveNode 
    property :name 
    has_many :references 
end 

因为当时我得到的东西像Concept.first.references << new_reference开箱。有没有这样的功能?

回答

2

我回复了Github的问题,但我会在这里发帖,以防万一有人遇到它!

目前,我们并未打算将此功能构建到ActiveNode模块中。我完全可以看到如何创建一个新的模块和类来处理这种事情,但是我们需要将其规划出来并计算出要走多远。这个宝石的目标是成为一个独立的OGM,并且由于提供ActiveRecord互操作性不是我们的目标,所以我担心试图通过行为来帮助实现这一目标可能会导致糟糕的实现,并且在我们的最终得到的支持很差。

你可能想看看Neoid gem,它的重点就是这个,如果/当它的重建结束时,我认为它会做得很好。