0
我有兩個型號,post
和comment
Rails的範圍加入
我需要一個post
範圍稱爲in_use
,其被定義爲在存在該帖子的評論。我相信這是完全簡單的,但我的頭腦是空白的!
,所以我需要能夠做到像
Post where post.comments.count > 0
,但不知道如何在一個範圍內做到這一點?
我有兩個型號,post
和comment
Rails的範圍加入
我需要一個post
範圍稱爲in_use
,其被定義爲在存在該帖子的評論。我相信這是完全簡單的,但我的頭腦是空白的!
,所以我需要能夠做到像
Post where post.comments.count > 0
,但不知道如何在一個範圍內做到這一點?
scope :in_use, -> { includes(:comments).where("post.comments <> ''") }
的最佳優化的方式做到這一點:
scope :in_use, -> { where("exists (select * from comments where post_id=posts.id)") }
這將在任何RDBMS優化很好,如果查詢鏈接,它會優化。
這是絕對不正確的SQL,將無法正常工作。 –