1

モデル:

class Item
    store :socket_store, accessors: [:sockets, :socket_count, :socket_link_count]
end

マッピング:

mapping do
  indexes :id,                    key: "value", index: :not_analyzed
  indexes :sockets,               type: "object"
  indexes :socket_count,          type: "integer"
  indexes :socket_link_count,     type: "integer"
end

しかし、実際のインデックスは次のようになります。

socket_coutそして他の 2 つの属性は、あたかも完全に無視されたかのように、マッピングのルートにありません。

別の名前のメソッドを作成して to_indexed_json に追加できることはわかっていますが、そのままで機能するはずだと推測していました。

4

1 に答える 1

1

はい、分かりました。

キー値ストアのアクセサーはモデルの実際の属性ではないためItem、メソッドにメソッドとして追加する必要がありますto_indexed_json

def to_indexed_json
    to_json(include: [:stats], exclude: [:sockets_store], methods: [:socket_count, :socket_link_count, :sockets])
end

以上です!

于 2013-03-05T19:59:41.927 に答える