Rails scope - where in exact matches

前端 未结 2 1456
天涯浪人
天涯浪人 2020-12-19 19:30

Is it possible to make scope in Rails with where IN (?) query, which will check exact matches?

for example:

Post.joins(:tags).where(\'ta         


        
相关标签:
2条回答
  • 2020-12-19 19:55

    The idea to get matching all values in IN clause you have to do this:

    tag_ids = [1, 2, 3, 4]
    Post.joins(:tags).where('tags.id IN (?)', tags_ids).group("posts.id")
                        .having("COUNT(posts.id) >= ?", tag_ids.length)
    

    I hope this help you.

    0 讨论(0)
  • 2020-12-19 19:56

    This should be worked in pgsql database..

    opp_id = Post.joins(:post_tags).group('post.id').having('ARRAY[?] = ARRAY_AGG(post_tags.tag_id ORDER BY post_tags.tag_id)', tags.sort).pluck(:id)
    
    0 讨论(0)
提交回复
热议问题