カスタマイズされた spree webshop プロジェクトで、sunspot を使用して全文検索を行っています。
すでに広範囲に索引付けされている製品があります。
class Product
searchable do
text :description
... lots of other declarations
end
end
ここで、Orders のインデックスを作成する必要があります (他のモデルを使用しますが、これは重要ではないと思います)、have_many Products:
class Order
has_many :products
end
問題は、同じ索引付けされた属性を使用して、製品を介して注文を検索できるようにしたいということです。私は DRY を維持し、製品の宣言のバリエーションを注文の新しい検索可能なブロックに追加するのではなく、「注文は製品を介して検索可能です」のようなことを言いたいです。これはどういうわけか可能ですか?太陽黒点のドキュメントには、このようなことは何も言及されていません。
編集:
「apneadiving」は、宣言をある種の共有モジュールに入れ、そのように再利用することを提案しました。私は間違っているかもしれませんが、sunspot DSL は現在のモデルを参照しているため、これは機能しないと思います。そのため、Product からの宣言は Order では機能しません。
たとえば、上記の例の検索可能なブロックを Order に適用できた場合、sunspot に説明で Order をインデックス化するように指示しますが、これはありません。とにかく、製品によるインデックス化には役立ちません。