我想学习与Rails 4的数据库关联。Sum表列如果相关表字段满足条件
在我的应用程序中,我有两个模型,销售和产品。
class Sale < ActiveRecord::Base
belongs_to :customer
belongs_to :product
end
class Product < ActiveRecord::Base
self.primary_key = :product_id
has_many :sales
end
我已经设置了一个的has_many和belongs_to的和Rails的控制台,我可以成功地做到协会:
@s = Sale.find_by_product_id("10RB1236").product.product_group_id
Sale Load (1.5ms) SELECT "sales".* FROM "sales" WHERE "sales"."product_id" = '10RB1236' LIMIT 1
Product Load (0.8ms) SELECT "products".* FROM "products" WHERE "products"."product_id" = $1 ORDER BY "products"."product_id" ASC LIMIT 1 [["product_id", "10RB1236"]]
=> "30"
这成功地返回该product_group_id为“30”。我的学习协会的一个里程碑:)对此感到高兴。
但现在我希望能够返回product_id的关联product_group_id等于30的net_amount的总和。这样我就可以获得满足此条件的数据库中所有行的总net_amount。
我曾尝试:
@c = Sale.sum(:net_amount, :conditions => {:product_id.product_group_id => "30"})
@c = Sale.sum(:net_amount, :conditions => {:product_id.product.product_group_id => "30"})
只是想获得一些更多的想法或如何做到这一点的解决方案?如果我在纯SQL中这样做,我认为我会在某处发生内部联接。
任何想法将不胜感激。
http://stackoverflow.com/questions/12702506/how-to-use-inner-join-in-ruby-on-rails 这个问题是有很大帮助的人停留在此的未来。 –