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]) 
相关问题