Here's the situation...
:customer has_many :billing_windows
:billing_window belongs_to :customer
A billing_window can either be open or closed (it is considered open
until its closed_on attribute is set to a datetime). I'm trying to
refactor the class method on Customer that finds all customers with at
least 1 open billing_window. Currently it looks like this...
def self.has_open_billing_window
set = []
Customer.find(:all).each do |customer|
set << customer if customer.billing_windows.find(:all, :conditions
=> [:open => true]).size > 0
end
set
end
For obvious reasons, this is horribly inefficient so I have refactored
that code to:
def self.has_open_billing_window
Customer.find(:all, :joins => :billing_windows, :conditions =>
"billing_windows.closed_on IS NULL")
end
This definitely seems cleaner but I don't like the fact that the
conditions clause is specific to the database query language. Does
anyone know a better way to accomplish this?
Bob
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.