Rails 3 - 与Kaminari分页 - 显示一个控制器的动作,浏览另一个控制器的记录

时间:2012-04-24 20:59:10

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

我目前的设置是讨论有很多帖子。因此,讨论的展示行动显示了一个帖子列表。

讨论/ show.html.erb:

<% for post in @discussion.posts %>
<div class="post" id="<%= post.id %>">
    <div class="post-content">
        <div class="post-user">
            <div class="name"><%= link_to post.user.username, post.user %></div>
        </div>
        <div class="post-body">
            <%= post.content %>
        </div>
    </div>
</div>
<% end %>

这是我的discussion_controller show action:

def show
   @forum = Forum.find_by_permalink(params[:forum_id])
   @discussion = Discussion.find(params[:id])
end

每次我尝试将paginate方法添加到视图中时,都会出现一系列错误。我知道我在这里踩错了脚,所以我应该从哪里开始为这个页面工作?

非常感谢,对Rails来说仍然有点新鲜!

1 个答案:

答案 0 :(得分:1)

变化

@discussion = Discussion.find(params[:id])

@posts = Discussion.find(params[:id]).posts.page(params[:page]).per(20) 

您的观点将是

<% for post in @posts %>

然后,您将在视图中添加分页代码

<%= paginate(@posts) %>