儿童桌的Rails kaminari分页

时间:2013-05-31 19:07:34

标签: ruby-on-rails ruby-on-rails-3

我有两个课程:PostsComments,其中有has_many :comments个帖子和comments belongs_to post

我的每个帖子都有一个显示页面,其中包含评论列表,我想对评论进行分页。使用我当前的代码,我将显示所有页面上所有注释的列表。所以,如果我有10条评论,并且我希望每页有2条评论,那么我会得到5页,其中包含最初的10条评论。有人可以解释一下吗?

我的代码:

Posts controller:

def show
  @post = Post.find(params[:id])
  @comments = @post.comments.page(params[:page]).per(3)

  respond_to do |format|
    format.html # show.html.erb
   format.json { render json: @post }
  end
end


"Show" views:

<%= paginate @comments %>

<% @post.comments.each_with_index do |comments, index| %>
    <tr>
    <td><%= index+1 %></td>
    <td><%= comment.date %></td>
    <td><%= comment.text %></td>
  </tr>
  <% end %>
</table>

1 个答案:

答案 0 :(得分:1)

您需要在视图中使用分页对象,而不是从数据库中获取它们:

<% @comments.each_with_index do |comments, index| %>
  <tr>
    <td><%= index+1 %></td>
    <td><%= comment.date %></td>
    <td><%= comment.text %></td>
  </tr>
<% end %>

这让他们变得新鲜,没有任何意义:

@post.comments