1

Neo4jrb でノード ラベルをカスタマイズする際に問題が発生します。

class Core::Product
  include Neo4j::ActiveNode
  id_property :id
  property :name
  property :code
  property :stock_quantity, type: Integer
  property :sale_price, type: Float
  property :last_update, type: DateTime
end

新しいノードを作成すると、Core::Productというラベルが付けられます。代わりに製品にしたい。

この投稿によると、 _classname プロパティで問題を解決できるようですが、実装方法がわかりません。

何か案は?

4

1 に答える 1

1

ここの Neo4j.rb の共同メンテナーであり、 の作成者/責任者です_classname_classname現時点では非常にレガシーなオプションであり、一部の DB 応答にノード ラベルや関係タイプが含まれていなかったときの名残です。モデルを呼び出すことで、自動ラベル割り当てをオーバーライドできますself.mapped_label_name =

class Core::Product
  include Neo4j::ActiveNode
  self.mapped_label_name = 'Product'
  # etc,...
end

また、関連モデルの自動ロケーションが正しく機能しないことに注意してください。代わりに、次のようにします。

has_many :out, :products, type: 'HAS_PRODUCT'

これを行う必要があります:

has_many :out, :products, model_class: 'Core::Product', type: 'HAS_PRODUCT'

それについて議論する未解決の問題https://github.com/neo4jrb/neo4j/issues/753があります。コードを整理するためにモデルに名前を付けていますが、ラベルでそれらを省略したいので、これを処理する構成オプションが欲しいです。

ファローアップ

https://github.com/neo4jrb/neo4j/pull/790をマスターにマージしました。ラベルを作成するときにモジュール名を無視するように gem に指示できます。今週いくつかのコードで動作させる予定ですが、テストしたい場合は、いつでもフィードバックをお待ちしております.

于 2015-05-09T21:01:18.053 に答える