0

如果我點擊下一個或上一個鏈接,它將不會進入下一頁或上一頁。Ruby on Rails:will_paginate工作不正常

所有帖子都在同一頁面上,但下面有鏈接,上面有鏈接。

在PostsController:

<%= will_paginate @posts%> 

哪裏是用will_paginate問題:

@posts = Post.paginate(:per_page => 15, :page => params[:page], :order => 'created_at DESC') 
在帖子/指數

+0

你能發佈(1)這實際上是從你的開發日誌執行的SQL,和(2)的網址「Next」和「Previous」指向,所以我們可以看到它是否正確連接? – jefflunt

+0

點擊下一步,上一個鏈接我得到這樣的網址,http://0.0.0.0:3000/posts?page=2或http://0.0.0.0:3000/posts?page=1,但所有17個帖子都在同一頁面,點擊這些鏈接什麼也不做。 – shibly

+0

完整性檢查:您的分貝中是否有超過15個帖子? :) –

回答

1

不確定這是否會導致您的錯誤,但排序應該在will_paginate之外完成。

@posts = Post.paginate(:per_page => 15, :page => params[:page]).order('created_at DESC') 

這是它應該如何在Rails的3

我也遇到了麻煩,設置控制器內的per_page參數來完成。您可以嘗試在模型中設置它。

class Post 
    self.per_page = 10 
end 
+0

這沒有用,我做了@posts = Post.paginate(:per_page => 15,:page => params [:page])。order('created_at DESC') ,我還在模型中添加了 self.per_page = 10,這也沒有奏效。 – shibly

+0

你會發布你的控制器方法和視圖中的所有代碼嗎? – nslocum

+0

另外,你會在控制檯中運行查詢併發布sql。 爲此,請在查詢結尾處添加to_sql。 Post.paginate(:per_page => 15,:page => params [:page])。order('created_at DESC')。to_sql – nslocum

1

您有權責令PAGINATE之前, 因此,將其更改爲

@posts = Post.order('created_at DESC').paginate(:per_page => 15, :page => params[:page]) 
相關問題