我想學習與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 這個問題是有很大幫助的人停留在此的未來。 –