0

ハッシュを返すメソッドがあります:

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 に完全にブロックを使用することが優先されているようです。

どんな助けでも大歓迎です。

4

1 に答える 1