1

次の2つのモデルがあります。

Product { has_may variants}


Variant {belongs to product}

Sunspot 検索を使用した結果、選択したバリアントを取得しました。検索結果には、検索によって取得された 1 つ以上のバリアントである各製品が含まれているため、この結果が必要です。

検索のコードサンプルは次のとおりです。

@search = Sunspot.search(Spree::Variant) do
  keywords params[:keywords]      
  with :is_active, true  
  with  :deleted_at,nil
  if params[:ah].present? && params[:al].present?
    (Date.parse(params[:al])..Date.parse(params[:ah])).each do |d|
    with :f2r_available_on, d.to_time
    end
  end
end
@products = @search.results
4

1 に答える 1

0

最初に明確にさせてください。上記のコードで@search.resultsは、検索から返されたバリアント レコードの配列があり、これらのバリアントの 1 つ以上に関連付けられているすべての製品を取得したいですか?

もしそうなら、これはそれを行うべきです:

@products = Product.where(:id => @search.results.map(&:product_id))
于 2013-01-29T13:00:38.387 に答える