【问题标题】:Ruby on Rails: How to make a next/prev page button for post?Ruby on Rails:如何为帖子制作下一页/上一页按钮?
【发布时间】:2018-05-13 15:20:36
【问题描述】:

我需要为列出帖子的页面制作下一个/上一个按钮(没有 gem)。我想将其限制为每页 8 个(从最新到最旧)。 对于控制器,我有这个:

def index
    @links = Link.order(created_at: :desc).limit(8).offset(@page * 8)
end

private
def set_page
    @page = params[:page] || 0
end

在 index.html.erb 中

<%= link_to 'Prev Page', page: -1.to_i %>
<%= link_to 'Next Page', page: +1.to_i %>

它在第一页列出了 8 个主题,但是当我单击下一页时,它只是一个空白页。我从另一篇文章中关注了这一点,但我不确定我错过了什么。 谢谢

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    看,如果您不想使用 gem,请按照控制器中的以下代码进行操作

    before_action :set_page, only: [:index]
    PAGE_SIZE = 8
    def index
        @links = Link.order(created_at: :desc).offset(PAGE_SIZE * @page).limit(PAGE_SIZE)
    end
    
    
    private
    def set_page
        @page = (params[:page] || 0).to_i
    end
    

    在视图中

    <nav>
        <ul class="pager">
            <li class="previous <%= page == 0 ? 'disabled' : '' %>">
                <%= link_to_if page > 0, "&larr; Previous".html_safe, your_index_path(page: page - 1) %>
            </li>
            <li class="next">
                <%= link_to "Next &rarr;".html_safe, your_index_path(page: page + 1) %>
            </li>
        </ul>
    </nav>
    

    【讨论】:

    • 很高兴听到它:)
    猜你喜欢
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多