kaminari - 重定向到最后一页

时间:2012-04-04 02:43:09

标签: ruby-on-rails kaminari

所以我已经在我的应用程序上设置了Kaminiari,这是一个论坛。当有人回复该帖子时,我想将它们引导到该帖子的最后一页。似乎很容易根据我用于记录号码的内容硬编码逻辑来获取最后一页,但是有没有内置的方法来获取最后一页?

4 个答案:

答案 0 :(得分:2)

在我目前的kaminari版本(v0.12.4)中,以下作品:

users = User.page(params[:page])
last_page = users.num_pages

num_pageshttps://github.com/amatsuda/kaminari/blob/master/lib/kaminari/models/page_scope_methods.rb中定义。 如果您想添加last_page方法,我建议如下:

module Kaminari
  module PageScopeMethods
    def last_page
      num_pages
    end
  end
end

答案 1 :(得分:1)

似乎this thread有答案。

答案 2 :(得分:0)

如果Kaminari中尚未出现,您可以编写一种方法来实现此目的。这应该存在,因为Kaminari还呈现导航的页码。

比如说,@ records是您执行@ records.page(1)以显示获取当前记录集的db记录列表,

最后一页编号由(@records.total_count / per_page.to_f).ceil定义。

答案 3 :(得分:0)

对于其他人来说,我会分享对我有用的东西。

协会

  1. Conversation has_many消息
  2. 消息belongs_to Conversation
  3. 在对话节目页面中,我想对每10条消息进行分页

    messages = conversation.messages.page(params[:page]).per(10)
    last_page = messages.total_pages
    

    然后我想创建一个指向此节目页面的链接,它将显示最后一页。我刚刚做了一个辅助方法

    def create_link_to_last_page(conversation)
        content_tag :div do
          link_to("Show", url_for(controller: 'conversations', action: 'show', id: conversation.id, page: last_page))
        end
    end