1

国、クライアント、注文を含むレールアプリがあります。注文はクライアントに属し、クライアントは国に属し、クライアントには多くの注文があり、国には多くのクライアントがあります。

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

コントローラーで、特定の条件を満たす少なくとも 1 つの注文がある特定の国からのクライアントの配列を取得する最速の方法を見つけようとしています。例: 合計が $100 を超える注文が少なくとも 1 件あるスペインのクライアント。

結合を使用する必要があると考えていますが、その方法がわかりません。

ありがとうございました

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 に答える