好的所以我有以下型号
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]])
我不知道这在活动记录中是否可行,或者我只是想错了问题
任何帮助将不胜感激。
谢谢