我有一个属于对话的对话和消息。将用户直接发送到最新消息的最后一页是有意义的。
在消息上使用.order('created_at DESC')
对用户来说并不直观,因为它会将最新消息放在第一页之上,这不是大多数会话/论坛主题的工作方式。
现在我有这样的事情:
@messages = Message.where(conversation_id: params[:id]).paginate(:page => params[:page], :per_page => 15)
答案 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