0

我有两个不同的模型(Container 和 StockReceipt),我需要合并和订购它们以在表格中显示为交货。我目前正在对控制器中的记录进行排序:

stock_receipts = StockReceipt.where(:delivery_date.gt => 1.month.ago)

容器 = Container.joins(:shipment).where(:shipment => {:etd.gt => 1.month.ago})

@deliveries = (stock_receipts + 容器).sort!{|a,b| 交货日期(a)<=>交货日期(b)}

delivery_date 是一个帮助方法,根据类返回日期

它有效,但我想按供应商进行子排序(在 SQL 中:ORDER BY delivery_date,supplier_id)。我可以 group_by(delivery_date).group_by(supplier) 但这有点难看。

我想知道是否有更优雅的方法可以在 Rails 中或直接在 SQL 中执行此操作。

谢谢大家, 加姆

4

1 回答 1

1

您可以使用支持多模型搜索的 Solr 和 Sunspot gem(http://sunspot.github.com/) 等搜索引擎

这是一个小例子:

search = Sunspot.search(Post,Comment) do
  with(:published_at).less_than(Time.now)
  paginate(:page => params[:page])
end
于 2012-06-01T07:00:08.897 回答