0

我的控制器中有以下查询。有什么方法可以将它们合并为一个吗?

@record_videos = RecordVideo.where("recommand = ?",true).limit(8)
@musics=Music.limit(13)
@new_topics=Topic.limit(5).order("created_at desc")
4

1 回答 1

0

不,您不能组合返回不同对象类别的多个查询。好吧,理论上,如果您编写自己的查询 SQL 并使用几个s,您可以UNION,但 Rails 可能不知道如何处理结果数据。我想不出一个用例,这将是一个好主意。

现在,您可以在 Ruby 代码中轻松组合查询结果 - 例如,如果您想将它们全部排序,您可以这样做:

@all_items = [@record_videos.all, @musics.all, @new_topics.all].flatten.sort_by{ |thing|   thing.created_at}
于 2013-08-01T15:37:20.137 回答