根据上一篇文章的created_at日期对主题列表进行排序

时间:2014-08-15 19:10:49

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

制作论坛应用。

class Topic < ActiveRecord::Base
  belongs_to :user
  belongs_to :board
  has_many :posts, :inverse_of => :topic
end

class Post < ActiveRecord::Base
  belongs_to :user
  belongs_to :topic, :inverse_of => :posts
end

查看主席时,我希望主题列表按主题上一篇文章created_at日期的顺序排列。但是,我无法弄清楚如何以order()方法可以理解的方式编写它。

理想情况下,它会像这样简单

@topics = @board.topics.order("topic.posts.last.created_at")

我写的任何内容都会返回有关该列不存在的错误。

需要注意的一件重要事情是,此@topics将被输入分页,因此我不能简单地提取@board.topics的结果,自己订购然后分页,因为分页需要特定的收集类型。

1 个答案:

答案 0 :(得分:0)

  1. 始终附加错误消息。
  2. 使用sort:

    @topics = @board.topics.sort{|t| t.posts.last.created_at}