我有一个rails应用程序,其中包含国家/地区,客户和订单。订单属于客户,客户属于国家,客户有多个订单,国家有很多客户。
class Client < ActiveRecord::Base
has_many :orders
belongs_to :country
end
class Country < ActiveRecord::Base
has many :clients
end
class Order < ActiveRecord::Base
attr_accessible :total
belongs_to :client
end
我正试图找出在控制器中获得来自特定国家/地区的客户数组的最快方法,这些客户至少有一个订单满足特定条件。例如:来自西班牙的客户至少有一笔订单总额超过100美元。
我想我应该使用Joins,但不知道该怎么做。
谢谢
答案 0 :(得分:1)
您只需加入:orders
。
c = Country.find(id_for_spain)
filtered_clients = c.clients.joins(:orders).where("orders.total > ?", 100)