我在使用will_paginate插件进行订购时遇到问题。这是我的模特
论坛
class Forum < ActiveRecord::Base
has_many :topics, :dependent => :destroy
has_many :posts, :through => :topics
主题
class Topic < ActiveRecord::Base
belongs_to :forum, :counter_cache => true
has_many :posts, :dependent => :delete_all
发布
class Post < ActiveRecord::Base
belongs_to :topic, :counter_cache => true
belongs_to :user
我正在尝试获取最新帖子的主题。以下工作正常:
forum = Forum.find(3)
forum.topics.all(:include => [:posts], :order => "posts.created_at DESC")
但是在引入分页时(使用will_paginate插件),排序是不正确的。
forum = Forum.find(3)
forum.topics.paginate(:include => [:posts], :order => "posts.created_at DESC", :page => page)
有人知道为什么使用will_paginate插件会对订购造成不利影响吗?
我正在使用Rails 2.3.9并将使用1.6.2。
答案 0 :(得分:0)
在Rails 3中,我认为您可以在分页调用之前将顺序移动到:
forum.topics.includes(:posts).order("posts.created_at DESC").paginate()
答案 1 :(得分:0)
请勿在中使用方括号:include 。
同时添加:per _ page 参数:
forum = Forum.find(3)
forum.topics.paginate(
:per_page => 5,
:page => page,
:include => :posts,
:order => "posts.created_at DESC")