Iván Vega Rivera
2006-Mar-11 00:26 UTC
[Rails] Using :joins - How to help Rails populate a list of records from a complex join
Hi,
Due to some performance issues, I want to use a custom query for a find method:
def find_in_state(state)
State.find :all,
:limit => 10,
:conditions => [''s.id = ? AND '' +
''s.id = c.state_id AND c.state_id = ?
AND '' +
''c.id = col.county_id AND '' +
''s.id = l.state_id AND l.state_id = ?
AND '' +
''g.id = l.group_id AND '' +
''sc.location_id = l.id'',
state, state, state],
:joins => ''s, counties c, colonies col, locations l,
groups g, schools sc'',
:select => ''c.*, col.*, l.*, g.*, sc.*''
end
Basically, it searches for schools in a specific state, and joins with
related tables, like "counties", "locations",
"colonies"...
However, as I''m aware, it''s not possible to tell from which
table does
each column belong to, as there are column names shared between
different tables.
So I''m wondering if it''s possible to give Rails a hand so it
builds
the object relationship like so:
@schools = find_in_state(9) -> this should build:
@schools.state...
@schools.location...
@schools.location.county...
etc.
If it isn''t possible, how does one do it manually?
Thanks in advance!
Ivan V.
