ハッシュを返すメソッドがあります:
def image_hash
images = {
small: 'http://www.example.com/image1.png',
medium: 'http://www.example.com/image2.png'
}
end
Tire の ActiveModel マッピングの一部としてインデックスを作成する必要がありますが、メソッドのas:
オプションで動作させることができません。indexes
問題は、それを画像として再定義する必要があることです(これは別のモデルメソッドです)ので、次のように試しています:
indexes :image_hash, as: :images do
indexes :small, type: 'string', include_in_all: false
end
しかし、インデックスが正しく作成されていません。
methods
メソッドのオプションを認識していますto_indexed_json
:
def to_indexed_json
to_json( methods: [:image_hash] )
end
これは機能します。しかし、JSON オブジェクト全体を最初から再作成せずに、そのブロックで再定義する方法がわかりません。またmapping
、インデックス付きの JSON に完全にブロックを使用することが優先されているようです。
どんな助けでも大歓迎です。