我在rails应用程序Match and Round中有两个模型如下
Match(id, team1, team2, series_id, event_time, event_lock_time, match_type, created_at, updated_at, match_no, match_stage)
Round(id, series_id, name, description, event_time, event_lock_time, team_ids, matches_count, created_at, updated_at)
我想基于created_at添加两个表和排序记录,如
events = (Match + Round).order('created_at desc').paginate(:page => params[:page], :per_page => params[:per_page])
并且还应用分页。我正在使用will paginations gem。
任何人都可以帮助我在活动记录中如何做到这一点。
答案 0 :(得分:0)
只要我知道,模型没有+
运算符。所以你不能这样做:
(Match + Round)
但您可以添加Active Record Relations:
matches = Match.all
rounds = Round.all
(matches + rounds).sort_by(&:created_at)
您必须使用sort_by或类似方式,因为(matches + rounds)
是数组而不是活动记录关系(因此未定义order
)。
<强>更新强> 我猜你使用will_paginate对结果进行分页。它仍然适用于数组,但你必须告诉它,你可以用两种方式告诉它:
require 'will_paginate/array'
然后,你可以这样做:
(matches + rounds).sort_by(&:created_at).paginate(:page => params[:page], , :per_page => params[:per_page])