2012-05-07 20 views
-1

我想對兩個表格應用分頁。如何在導軌上應用兩個不同型號的分頁3

消息

Id Message   Created at 
1  Message One  2012-04-23 13:11:23 
2  Message Two  2012-04-23 13:11:26 
3  Message Three 2012-04-23 13:11:27 

投標

Id Comment   Created at 
1  Comment One  2012-04-23 13:11:24 
2  Comment Two  2012-04-23 13:11:25 
3  Comment Three 2012-04-23 13:11:28 

我想下面的結果(兩個最新的出價或消息)使用一個查詢

Id Content   Created at 
    3  Comment Three 2012-04-23 13:11:28 
    3  Message Three 2012-04-23 13:11:27 
+1

谷歌:「在Rails的分頁」 你的選項淹沒! –

+0

此外,許多重複! http://stackoverflow.com/search?q=pagination+rails –

+0

@Aayush庫馬爾: - 有喜歡的查詢優化的一些參數....我不是傻子問這樣一個簡單的問題......你的意思如果我想從1000條消息和1000個出價中顯示2條最新消息,那麼我需要獲取2000條記錄,然後應用分頁??? .......我不想拉出所有出價,所有消息,然後應用分頁就可以了...... – Salil

回答

0

有這種奇妙的寶石叫will_paginate 。我在我的應用程序中使用它。

關注this railscast知道如何安裝它們。它非常容易和偉大。

謝謝。

0

退一步說,我可能會問,爲什麼你需要的信息和投標兩個獨立的表。對我來說,他們看起來都像是存儲某種形式的文本通知。我猜你應該使用單表繼承或多形關聯(以防將來會出現其他業務邏輯)。

請檢查this blog知道更多。

我想這是你的分頁跨兩個表跨越非常的要求是一個設計的氣味。我沒有完整的背景,我不確定你現在是否有改變設計的自由。但是,只是一個想法!

+0

無論在問題中給出的是不是我真正的數據庫結構.....有5個更多的列在每個表......我知道Polymorphisom .....但在這種情況下,我不能使用Polymorphisom – Salil

0

第一件事,第一,從多個表分頁記錄是一個代碼味道。

不過,如果你想要去與這個壞方法,下面的代碼可能對你有所幫助:

records = [Message, Comment, Post].inject([]) do |record, with_class| 
    record+with_class.order('created_at DESC')#you can add limit, offset here 
end 


#Now paginate those records 

@records = WillPaginate::Collection.create(current_page, per_page, records.size) do   |pager| 
      pager.replace(@records) 
      end