2017-06-17 43 views
0

我在Rails應用程序匹配和圓形兩種型號如下Rails的聯盟表和排序公用密鑰

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]) 

也適用分頁。我正在使用將paginations寶石。

任何人都可以幫助我如何在活動記錄中做到這一點。

+0

你可以分享你的模型?如果他們之間有任何關聯? –

+0

不,我沒有任何關聯匹配和輪模型 –

回答

0

只要我知道,型號沒有+操作符。所以,你可以這樣做:

(Match + Round)

但您可以添加活動記錄關係:

matches = Match.all 
rounds = Round.all 
(matches + rounds).sort_by(&:created_at) 

你必須sort_by使用或類似的方式,因爲(matches + rounds)是數組,而不是一個活動記錄關係(因此order未定義)。

更新: 我想你正在使用will_paginate分頁結果。它仍然可與數組,但你必須告訴你可以用兩種方式告訴它:

  1. 一下添加到控制器的頂部:require 'will_paginate/array'
  2. 創建初始化配置/初始化/ will_paginate_with_array.rb並要求它在這個文件中。

然後,你可以這樣做:

(matches + rounds).sort_by(&:created_at).paginate(:page => params[:page], , :per_page => params[:per_page]) 
+0

嘿感謝您的答覆,但我想分頁結果,因爲我必須通過API請求數據。 –

+0

哦,我明白了,我會更新我的答案... –