Hi,
Let’s say I have an ActiveRecord::Base class and I want to be able to
call a method on an Array of these items. For instance, perhaps
there’s a class called Country and another called business, and I’d
like to be able to do something like
great_white_north = Country.find_by_name(‘Canada’)
canuck_enterprises = great_white_north.businesses
countries = Country.find_by_name([‘Canada’,‘UK’,‘Australia’)
we_love_the_queen_enterprises = countries.businesses
So I need to somehow extend the Array class I think. Tips?
Ben
On Jun 18, 2007, at 2:03 PM, Ben Nevile wrote:
Hi,
Let’s say I have an ActiveRecord::Base class and I want to be able to
call a method on an Array of these items. For instance, perhaps
there’s a class called Country and another called business, and I’d
like to be able to do something like
great_white_north = Country.find_by_name(‘Canada’)
canuck_enterprises = great_white_north.businesses
Assuming you have:
class Country < ActiveRecord::Base
has_many :businesses
end
Then you’re practically already there!
countries = Country.find_by_name([‘Canada’,‘UK’,‘Australia’)
we_love_the_queen_enterprises = countries.businesses
countries = Country.find(:all, :conditions => [ ‘name IN (?)’,
[‘Canada’, ‘UK’, ‘Australia’] ])
we_love_the_queen_enterprises = countries.map(&:businesses).flatten
So I need to somehow extend the Array class I think. Tips?
Ben
-Rob
Rob B. http://agileconsultingllc.com
[email protected]