代码之家  ›  专栏  ›  技术社区  ›  Aditya Mukherji

ActiveRecord查询

  •  2
  • Aditya Mukherji  · 技术社区  · 17 年前

    class Product < ActiveRecord::Base  
      has_many :reviews  
    end  
    
    class Review < ActiveRecord::Base  
      belongs_to :product  
    end  
    



    我不明白如何使用find命令来实现这一点。

    2 回复  |  直到 17 年前
        1
  •  1
  •   RichH    17 年前

    当查询开始询问聚合值的条件时,我会使用SQL,就像这个查询一样。实现你想要的结果有很多方法——这对我来说最简单:

    bound = 3
    products = Product.where('id in 
      (
        select product_id 
        from reviews 
        group by product_id 
        having avg(rating) > ?)', bound)
    
        2
  •  1
  •   griswoldbar    14 年前

    -是的,它能做到。这样的东西应该能奏效。..

     Product.find(:all, :include => 'reviews', :conditions => ['review.rating > ?', min_rating])
    

    编辑

    推荐文章