Rails 4 - will_paginate:默认转到最后一页

时间:2014-08-18 17:56:23

标签: ruby-on-rails ruby-on-rails-4 will-paginate

我有一个属于对话的对话和消息。将用户直接发送到最新消息的最后一页是有意义的。

在消息上使用.order('created_at DESC')对用户来说并不直观,因为它会将最新消息放在第一页之上,这不是大多数会话/论坛主题的工作方式。

现在我有这样的事情:

@messages = Message.where(conversation_id: params[:id]).paginate(:page => params[:page], :per_page => 15)

1 个答案:

答案 0 :(得分:1)

will_paginate支持页面选项,因此您始终可以将最新页面作为参数提供。例如:

messages.paginate(page: latest_page)

所以你只需要实现latest_page方法,计算记录数并除以每页的记录数。

编辑:

这样的事情:

def latest_page
  messages = Message.where(conversation_id: params[:id])
  messages.count / 15
end