【问题标题】:Rails: Comment Pagination under a MicropostRails:微博下的评论分页
【发布时间】:2012-03-18 14:43:44
【问题描述】:

我在微博下有一个评论模型。我想知道我是否可以对此进行分页,以便在单击微贴上的评论按钮后不会立即显示 50 个 cmets。我很确定这不能分页,但是有没有像 facebook 这样的方式,只有一定数量的显示,然后用户可以根据需要显示更多。目前我的代码如下所示:

评论区的微博 HTML

<div id='CommentContainer-<%= micropost.id%>' class='CommentContainer Condensed2'>
<div class='Comment'>
<%= render :partial => "comments/form", :locals => { :micropost => micropost } %>
</div>
<div id='comments'>
<%=render micropost.comments %>
</div>
</div>

当点击上面的按钮时,它会显示此部分,我不希望 50 cmets 一次显示全部。所有的建议都会很有帮助。谢谢!

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3 jquery pagination


    【解决方案1】:

    我建议您查找 2 个最广泛用于在 rails 上进行分页的 rails gems

    --> will paginate

    --> Kaminari

    比起分页,我更喜欢 Kaminari,因为它提供了比分页更大的灵活性。

    【讨论】:

    • 我目前正在对用户展示页面上的微博使用分页,但我认为无法将微博下的 cmets 与用户展示页面上的微博分页
    • 你可以分页任何你想要的。您只需要限制每页显示的项目数
    【解决方案2】:
    1. 确保您在控制器中调用 @comments = Comment.paginate(:page =&gt; params[:page], :per_page =&gt; 10)
    2. 您通过&lt;%= will_paginate @comments %&gt; 调用而不是通过:render 和稍后通过will_paginate 呈现组
    3. 因为我已经知道您正在使用嵌套部分。我会确保您调用的项目具有正确的集合。满足这三件事后,它应该可以正常工作。

    您还可以确保在will_paginate 上查看 railscast,尽管如果没有专业订阅,您可能必须观看 outdated version

    【讨论】:

    • 非常感谢您对过去几个问题的帮助 :)...我目前收到的唯一问题是,当用 &lt;%= will_paginate @comments %&gt; 替换 &lt;%=render micropost.comments %&gt; 时,我得到了相同的分页评论部分底部的数字,但没有显示 cmets
    • 啊,你可能实际上不需要在那里使用@comments。尝试使用可能有效的&lt;%= will_paginate micropost.comments %&gt;。我刚刚使用了@cmets,因为我不确定你有哪些可用的变量。
    • 新错误! x) undefined method total_pages' 用于#<:relation:0x007fc8c1e2fa90>`
    猜你喜欢
    • 2023-03-02
    • 2012-04-14
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    相关资源
    最近更新 更多