使用Association时,将搜索结果映射到rails

时间:2013-01-29 12:17:26

标签: ruby-on-rails-3 search mapping sunspot-rails

我有两个型号:

Product { has_may variants}


Variant {belongs to product}

我使用了太阳黑子搜索,结果我检索了所选的变种,现在我想要这个结果,因为我的搜索结果包含了搜索检索到的一个或多个变体的每个产品。

搜索代码示例如下:

@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

1 个答案:

答案 0 :(得分:0)

首先让我澄清一下:在上面的代码中,@search.results是从您的搜索返回的变体记录数组,并且您希望获得与这些变体中的一个或多个相关联的所有产品?

如果是这样,那么应该这样做:

@products = Product.where(:id => @search.results.map(&:product_id))