Неправильный порядок связанной модели Rails при использовании will_paginate - PullRequest
0 голосов
/ 25 июля 2011

У меня проблемы с заказом с помощью плагина 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 и will_paginate 1.6.2.

Ответы [ 2 ]

0 голосов
/ 25 июля 2011

Не используйте квадратные скобки в : включите .
Также добавьте : на _ страницу параметр:

forum = Forum.find(3)
forum.topics.paginate(
        :per_page => 5,
        :page     => page,
        :include  => :posts,
        :order    => "posts.created_at DESC")
0 голосов
/ 25 июля 2011

В Rails 3, я думаю, вы можете перенести порядок до вызова paginate:

forum.topics.includes(:posts).order("posts.created_at DESC").paginate()
...