Rails 3& Kaminari分页问题

时间:2011-06-07 16:25:36

标签: ruby-on-rails ruby-on-rails-3 pagination gem kaminari

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

的视频

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

控制器/ stories_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&gt; Last»)。为了让分页工作,我错过了什么?

2 个答案:

答案 0 :(得分:4)

我仍然无法理解你的代码。为什么在第1行将Story.all分配给@stories并覆盖第3行中的变量?

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

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

答案 1 :(得分:3)

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

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

等等:

<% @stories.each do |story| %>
<%= render story %>
<% end %>
<%= paginate @stories %>
在您的视图中