1

我有一个包含国家、客户和订单的 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 美元的订单。

我在想我应该使用联接,但不知道该怎么做。

谢谢

4

1 回答 1

1

你只需要加入:orders

c = Country.find(id_for_spain)
filtered_clients = c.clients.joins(:orders).where("orders.total > ?", 100)
于 2012-11-22T14:32:55.497 回答