I am working on a database that has the following associations It''s not my database, so I am stuck with the structure): class DimTeam < ActiveRecord::Base set_primary_key "team_id" has_many :work_match_map_teams, :foreign_key => "to_team_id" end class WorkMatchMapTeam < ActiveRecord::Base set_primary_key "map_id" belongs_to :work_match, :foreign_key => "work_match_id" belongs_to :dim_team, :foreign_key => "to_team_id" end class WorkMatch < ActiveRecord::Base set_primary_key "work_match_id" has_many :work_balls, :foreign_key => "work_match_id" has_many :work_match_map_teams, :foreign_key => "work_match_id" end class WorkBall < ActiveRecord::Base set_primary_key "work_ball_id" belongs_to :work_match, :foreign_key => "work_match_id" end I can carry out a find as follows: home_team = DimTeam.find(@search.home_team_id, :include => [:work_match_map_teams, {:work_match_map_teams => :work_match }, {:work_match_map_teams => {:work_match => :work_balls}}]) and while this takes a while, it works. I''d like to be able to do something like home_team.work_match_map_teams.work_match.work_balls but this breaks down because home_team.work_match_map_teams is an array. I''ve tried team1_matches = home_team.work_match_map_teams.map {|m| m.work_match} but that *is* slow, as it makes a SQL call every time map is invoked and I still haven''t got the required result! Can anybody please suggest a way in which I can achieve the above with an efficient SQL call? --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---