ruby-on-rails-3 - 如何阻止 will_paginate 从数据库获取每个帖子

标签 ruby-on-rails-3 will-paginate

我只是在使用 Ruby on Rails 3.0 和一个简单的留言板,发现了 will_paginate 的几个问题。

最紧迫的是,每次显示新页面时,都会对主题中的每个帖子执行数据库查询。

正如您可以想象的,如果您的主题包含 10,000 多个帖子,速度会非常慢。

有办法阻止这种奇怪的行为吗?

显示 Controller :

@posts=@topic.posts
@posts = Post.paginate @posts, :page => params[:page],:order => "post_number"

型号

cattr_reader :per_page 
@@per_page = 20

查看

<%= will_paginate @posts %>

最佳答案

在你的 Controller 中尝试:

@posts = Post.paginate_by_topic_id @topic.id, :page => params[:page],:order => "post_number"

查看 will_paginate docs 中的示例

关于ruby-on-rails-3 - 如何阻止 will_paginate 从数据库获取每个帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647038/

相关文章:

ruby-on-rails - Rails Alpha2 国家/地区 到 真实国家/地区名称

ruby-on-rails - will_paginate 列表中每个项目的正确编号?

ruby-on-rails - 在没有 :total_entries to improve a lengthy query 的情况下使用 will_paginate

javascript - 无限滚动和 will_paginate 多次附加项目的 'next page'

ruby-on-rails - Will_Paginate - 如何获取所有分页对象 ID 的数组?

sql - 在数据库中设置 bool 值

ruby-on-rails - 从 Ruby on Rails 应用程序运行 phantomjs

ruby-on-rails - Heroku帮助部署使用Mysql数据库的Rails应用程序

ruby-on-rails - Mongoid 扩展名 .ne

ruby-on-rails - 将分页、嵌套路线、ruby、rails