1

Neo4j を使用して 1 つのモデルをバックエンドし、PostgreSQL を使用して他のすべてのモデルをバックエンドするアプリケーションがあります。Neo4j モデルは次のとおりです。

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.conceptますConcept.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そうすれば、箱から出してすぐに使えるようになるからです。そのような機能は存在しますか?

4

1 に答える 1

2

Githubの問題に返信しましたが、誰かが遭遇した場合に備えてここに投稿します!

現時点では、この機能を ActiveNode モジュールに組み込む予定はありません。この種のことを処理するために新しいモジュールとクラスを作成する方法は確かにわかりましたが、それを計画し、どこまで進めるかを把握する必要があります。この gem はスタンドアロンの OGM になることを目標としていますが、ActiveRecord の相互運用性を提供することは目標ではないため、その追求を支援するために振る舞いを追加しようとすると、私たちのサポートが不十分な粗悪な実装になるのではないかと心配しています。

Neoid gem をチェックしてみてください。その焦点はまさにこれであり、再構築が終了した場合、素晴らしい仕事をしてくれると思います。

于 2014-11-05T20:13:48.067 に答える