Rails:在has_many关系下按属性对activerecord对象进行排序

时间:2016-03-03 11:15:02

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

if( isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()){
        jQuery(".btn").attr("href", "https://maps.google.com?saddr=Current+Location&daddr=44.000000,7.000000")
    }

我希望显示按class Post has_many :commments end class Comment belongs_to :post end 创建日期(posts)排序的post列表。我还希望一些submitted_at xyz出现在顶部,如果它发布了一些新的评论并且尚未由主持人审核。我们将通过评论级别(moderated = 1/0)的post属性/字段来确定这一点

我试过

boolean

但这不包括没有Posts.join(:comments) .distinct .order("submitted_at DESC, comments.moderated") 的帖子,结果未按预期排序。我确信我们可以在ruby级别执行此操作,但是正在寻找使用AR执行此操作的方法。

1 个答案:

答案 0 :(得分:0)

对于联接,请使用:

Posts.join("LEFT JOIN comments ON comments.post_id = posts.id")

其中包括没有评论的那些。

您的排序似乎建议您需要一定数量的审核评论,在这种情况下,请尝试以下方法:

.order("submitted_at DESC, COUNT(comments.moderated)")

虽然,您可能也需要以某种方式使用group