2011-04-13 58 views
0

我使用Rails 3和will_paginate。我有will_paginate成功工作在三重嵌套資源。我無法鏈接到來自不同控制器的分頁視圖(頁面1 2 3 4)。我在一個控制器中,但我的分頁發生在嵌套控制器中。假設我有一個控制器部分「主題」和「回覆」。在我的節目「主題」控制器中,我爲所有回覆分頁(因爲它根據主題的路徑回覆回覆)。因此,現在我正在試圖鏈接到主題的不同頁面的節目視圖中(每頁大約7個回覆)。由於我在部門控制器中,因此我無法輕鬆對主題的回覆進行分頁,因爲它依賴於視圖中的主題循環。此外,我不一定需要主題名稱旁邊的「上一個」和「下一個」鏈接......我只需要(1 2 3 ... 10)或類似的東西。有沒有辦法保存這個分頁在不同的控制器中使用?Rails 3顯示will_paginate頁面從不同的角度

這樣做最簡單的方法是什麼?

如果你有一個很難理解,認爲是像一個典型的論壇帖子鏈接到不同的網頁:

Section 
    Topic A (1 2 3) 
    Topic B (1) 
    Topic C (1 2 3 ...5) 
    Topic D (1 2 3 ...10) 

但我不知道如何使用will_paginate從控制器對分頁一無所知。

+0

發佈您必須更好地顯示問題的代碼 – jvatic 2011-04-16 01:41:09

回答

0

對不起,回答我自己的問題。花了一段時間才弄明白這一點。

我想出了它沒有使用will_paginate顯示方法。我做了我自己的幫手。我不知道這是否是'正確'做事的方式,但它是有效的。 我做了一個幫手,在主題旁邊輸出頁碼。在我看來,我有一組這樣的:

<% @topics.each do |topic| %> 
    <%= pageLinks(topic, @section) %> 
<% end %> 

那麼接下來的幫手,我做出這樣的:

def pageLinks(t, s) 
    html = "" 
    if t.replies.count > 7 
     pageList = [] 
     1.upto(t.replies.count/6) {|n| pageList << "#{link_to n, section_topic_path(s, t, :page =>n) } "}  
     html << "| page (#{pageList})" 
     html.html_safe 
    else 
     return 
    end 
end 

基本上,我通過我希望每頁結果量和鏈路分基於此。

關於這段代碼的一個有趣的事情,我花了一段時間是link_to:page => n,顯示路徑/ section/id/topic/id?page = n ...您必須將它傳遞給參數如果您使用「rake路線」中列出的路徑,則爲路徑。我也很難返回實際的html,而不是打印html本身。