所以我不知道我在这里做错了什么,但我的will_paginate方法没有按预期工作。问题是我想设置每页限制,但所有注释仍显示在第一页,当我点击下一个按钮时,所有注释仍显示在第二页。
这是我的UsersController(请记住,用户有很多评论):
def show
@user = User.find(params[:id])
@comments = @user.comments.paginate(page: params[:page], :per_page => 20)
end
以下是我的用户显示视图:
<div class="span6">
<h3>Comments (<%= @user.comments.count %>)</h3>
<ol class="user_comments">
<% @user.comments.each do |comment| %>
<li>
<span class="content"><%= comment.content %></span>
<span class="timestamp">
Posted <%= time_ago_in_words(comment.created_at) %> ago to <%= link_to Article.find_by_id(comment.article_id).title, Article.find_by_id(comment.article_id) %>.
</span>
<div>
<% if current_user?(comment.user) %>
<%= link_to "delete", comment, method: :delete,
data: { confirm: "You sure?" },
title: comment.content %>
<% end %>
</div>
</li>
<% end %>
</ol>
<%= will_paginate @comments %>
奇怪的是,我的文章显示视图中的代码非常相似(文章也有很多评论)...任何帮助都将不胜感激!
答案 0 :(得分:0)
你的错误很简单:)这一行:
<% @user.comments.each do |comment| %>
应替换为:
<% @comments.each do |comment| %>
因为您没有使用过滤后的数组