Wrong id after join!


#1

The Problem

After using a join in my find the id attributes set in my Entity objects
are wrong! It is setting the Entity id to the value from Postcode id!

The Code

entities = Entity.find(:all,
:conditions => […omited…],
:joins => "as e inner join postcodes as pc on
substring_index(e.postcode,’ ', 1) = pc.outer_part " )

Produces the folowing SQL

SELECT * FROM entities as e inner join postcodes as pc on
substring_index(e.postcode,’ ', 1) = pc.outer_part WHERE (categories_id
= 4 and pc.metres_x >= 367400.0 and pc.metres_x <= 399400.0 and
pc.metres_y >= 380600.0 and pc.metres_y <= 412600.0)


#2

This has happened to me a few times … just add a :select to be safe

entities = Entity.find(:all,
:conditions => […omited…],
:joins => "as e inner join postcodes as pc on
substring_index(e.postcode,’ ', 1) = pc.outer_part ",
:select=>‘e.*’ )

Steven Beales
Chief Software Engineer
Medical Decision Logic
724 Dulaney Valley Road
Towson
Maryland
21204
410-828-8948

“Martin Smith” removed_email_address@domain.invalid wrote
in message news:removed_email_address@domain.invalid…