2014-10-10 70 views
2

我有兩個型號.. videoyoutube_video兩種不同的模式記錄....我有一個index頁面同時顯示videos..so我是加入結果集都在一個陣列上顯示指數頁面,但我得到分頁錯誤..因爲undefined method total pages for array ....我做錯了什麼,,,我知道theres工作,將分頁作品ActiveRecord Relation而不是ActiveRecord ..我甚至嘗試model.where ...但犯規的作品......在這個什麼解決辦法將欣賞:)顯示使用分頁

我的控制器..

@videos = Video.includes(:user,:reputations,:tags,:comments).paginate(:page =>params[:page], :per_page => 10).order("created_at DESC") 
@youtube_videos=YoutubeVideo.includes(:user,:tags).paginate(:page =>params[:page], :per_page => 10).order("created_at DESC") 
@all_videos [email protected] + @youtube_videos 

我查看文件

###looping on @all_videos.... 
<div class="page_info text-center" style="margin-bottom:10px"> 
<!-- it breaks here --> 
    <%= page_entries_info @all_videos %> 
<hr> 
<!-- it breaks here too if i remove above line-->    
<%= ajax_will_paginate @all_videos %> 
</div> 

,如果我只使用@videos.。它的工作原理,但合併與另一model..it breaks..any想法後?

回答

2

您正在爲每個集合分頁,您需要先添加它們然後對該數組進行分頁。

require 'will_paginate/array' 
@videos = Video.includes(:user,:reputations,:tags,:comments).order("created_at DESC") 
@youtube_videos=YoutubeVideo.includes(:user,:tags).order("created_at DESC") 
@all_videos = (@videos + @youtube_videos).paginate(:page =>params[:page], :per_page => 10) 

當你將兩個查詢加在一起時,它看起來像你必須在ruby中排序數組。

+0

ok ...我得到了我錯在哪裏..謝謝... @japed – Milind 2014-10-10 13:20:21

+0

你的例子不是很好,添加兩個數組都不會將它們排序在彼此之內。在調用.paginate – Alain 2015-03-12 18:34:44

+0

之前,您錯過了.sort我剛剛重用了他的代碼。你是對的,但我只是回答有關分頁錯誤的問題。 – 2015-03-13 09:18:28