OKだから私は次のモデルを持っています
Class Company < ActiveRecord::Base
has_many customers
active?
Class Customers < ActiveRecord::Base
belongs_to :Company
has_one :account
Class Account < ActiveRecord::Base
belongs_to :Customer
has_many :invoices
Class Invoice < ActiveRecord::Base
belongs_to :account
has_many :line_items
invoice_date
Class LineItem < ActiveRecord::Base
belongs_to:Invoice
私がする必要があるのは検索です:顧客とそれらの顧客のためのいくつかの請求書を持っているすべてのアクティブな会社
ここにこすりがあります:各顧客は大量の請求書を持っている可能性があるので、私が返したいのは2012年4月1日の請求書としましょう。
私がやりたいのは、モデルに設定されたスコープまたはメソッドと組み合わせて、返される請求書の量を制限することです。
私のモデルにはスコープが含まれます:
Class Invoice < ActiveRecord::Base
belongs_to :account
scope :for_the_day_of, lambda{|invoice_date|where('invoices.invoice_date',invoice_date }
だから今私はこのようなものを書くことができます:
invoice = Invoice.for_the_day_of(Date.today).first
私が本当にやりたいことは次のようなものです。
comapanies = Company.where(:active => true)
.includes(:merchants => [:billing_account =>
[:invoices => for_the_day_of(Date.today) => :invoice_line_items]])
これがアクティブレコードで可能かどうかはわかりませんが、問題について間違っていると思っているだけかもしれません
どんな助けでも大歓迎です。
ありがとう