Ruby on rails Ruby on Rails:will_paginate工作不正常

Ruby on rails Ruby on Rails:will_paginate工作不正常,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,will-paginate,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Will Paginate,如果我单击下一个或上一个链接,它不会转到下一个或上一个页面 所有的帖子都在同一个页面上,但在底部有下一个、上一个的链接 在PostsController中: @posts = Post.paginate(:per_page => 15, :page => params[:page], :order => 'created_at DESC') 在员额/索引中: <%= will_paginate @posts%> will_paginate的问题在哪里?不确定

如果我单击下一个或上一个链接,它不会转到下一个或上一个页面

所有的帖子都在同一个页面上,但在底部有下一个、上一个的链接

在PostsController中:

@posts = Post.paginate(:per_page => 15, :page => params[:page], :order => 'created_at DESC')
在员额/索引中:

<%= will_paginate @posts%>


will_paginate的问题在哪里?

不确定这是否导致了您的错误,但订购应在will_paginate之外进行

@posts = Post.paginate(:per_page => 15, :page => params[:page]).order('created_at DESC')
在Rails3中应该这样做

我在控制器内设置per_page参数时也遇到问题。您可以尝试在模型中进行设置

class Post
  self.per_page = 10
end

不确定这是否导致您的错误,但订购应在will_paginate之外进行

@posts = Post.paginate(:per_page => 15, :page => params[:page]).order('created_at DESC')
在Rails3中应该这样做

我在控制器内设置per_page参数时也遇到问题。您可以尝试在模型中进行设置

class Post
  self.per_page = 10
end

您必须在分页前订购, 所以,把它改成

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

您必须在分页前订购, 所以,把它改成

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

更新到
will\u paginate,'3.1.7'
解决了我的问题

更新到
will\u paginate,'3.1.7'
解决了我的问题

你能发布(1)从你的开发日志中实际执行的SQL,以及(2)下一步和上一步指向的URL,这样我们就可以看到它是否连接正确了吗,上一个链接我得到了这样的url,或者,但所有17篇文章都在同一个页面中,单击这些链接没有任何作用。合理性检查:您的数据库中现在有超过15篇文章吗?:)是的,有17篇文章,所有的文章都在和中,你能发布(1)从你的开发日志中实际执行的SQL,和(2)“下一篇”和“上一篇”指向的URL,这样我们就可以看到它是否连接正确了?点击下一步,上一篇链接我会得到这样的URL,或者,但所有17篇文章都在同一个页面中,单击这些链接没有任何作用。是否正常检查:您的数据库中现在是否有超过15篇文章?:)是的,共有17篇文章,所有的文章都在和中,但都不起作用,我做了@posts=Post.paginate(:per_page=>15,:page=>params[:page]).order('created_at DESC'),我还在同样不起作用的模型中添加了self.per_page=10。你会在你的控制器方法和视图中发布所有代码吗,请在控制台中运行查询并发布sql。要执行此操作,请在查询末尾添加到sql。Post.paginate(:per_page=>15,:page=>params[:page]).order('created_at DESC')。到\u sqlrails控制台中,我在哪里键入该行?Post.paginate(:per_page=>15,:page=>params[:page]).order('created_at DESC').to_sqlI得到了这个结果,“SELECT \“posts\”FROM \“posts\”order BY created_at DESC LIMIT 15 OFFSET 15”for Post.paginate(:per_page=>15,:page=>2)。order('created_at DESC')。对于没有工作的SQLU,我做了@posts=posts.paginate(:per_page=>15,:page=>params[:page])).order('created_at DESC'),我还在同样不起作用的模型中添加了self.per_page=10。是否在控制器方法和视图中发布所有代码?是否在控制台中运行查询并发布sql。要执行此操作,请在查询末尾添加到sql。Post.paginate(:per_page=>15,:page=>params[:page]).order('created_at DESC')。到\u sqlrails控制台中,我在哪里键入该行?Post.paginate(:per_page=>15,:page=>params[:page]).order('created_at DESC').to_sqlI得到了这一点,为Post.paginate(:per_page=>15,:page=>2)。order('created_at DESC')。to_sql