1

好的,所以我决定在 rails 3 项目中使用 Kaminari 进行分页。我关注了 RailsCasts 的视频http://railscasts.com/episodes/254-pagination-with-kaminari

一切顺利,直到点或运行服务器。

控制器/story_controller.rb

def index
   @stories = Story.all
   @pages = Story.page(params[:page]).per(3)
   @stories = Story.search(params[:search]) 
end

意见/故事/index.html.erb

<%= paginate @pages %>

当我启动服务器时,有问题的索引页面显示数据库中的所有故事并呈现分页视图显示(1 2 Next > Last »)。为了使分页正常工作,我缺少什么?

4

2 回答 2

4

我仍然无法理解您的代码。为什么将 Story.all 分配给第一行的 @stories 并覆盖第三行的变量?

无论如何,@stories 将显示“数据库中的所有故事”,因为您没有.per在 @stories 上调用分页方法 ( )。分页链接将向您显示分页计数,因为您正在调用per@page 变量上的方法并将其传递给帮助程序。

我的意思是,您需要先调用.per该关系,然后再将其传递给<%= paginate %>助手。这很简单。

于 2011-06-07T22:21:51.403 回答
3

我猜你想从搜索中得到结果,对吧?尝试

@stories = Story.search(params[:search]).page(params[:page]).per(3)

和类似的东西:

<% @stories.each do |story| %>
<%= render story %>
<% end %>
<%= paginate @stories %>

在你看来

于 2011-06-07T16:44:01.730 回答