Ambiguous columns from related tables

Hi all,

I’ve got an issue where i have a search page that passes a field which
is then used as the criteria of the search. Problem is, I’ve set an AR
has_many relationship in the model that joins one table to another -
both tables have the same column name I’m searching on, so naturally I
get an ambiguous error in sql - it doesnt know which column to apply the
search to.

One solution would be to append the desired table name to the field
being passed on in search, like my_database.foo where foo was the
ambiguous field. But this doesn’t seem very Rails-ish to my newbie eyes.
Is there a better, AR-based way to handle this issue?

Best,

Peter D Bethke

On Mar 2, 2:34pm, Peter D Bethke [email protected] wrote:

Hi all,

I’ve got an issue where i have a search page that passes a field which is then
used as the criteria of the search. Problem is, I’ve set an AR has_many
relationship in the model that joins one table to another - both tables have the
same column name I’m searching on, so naturally I get an ambiguous error in sql -
it doesnt know which column to apply the search to.

One solution would be to append the desired table name to the field being passed
on in search, like my_database.foo where foo was the ambiguous field. But this
doesn’t seem very Rails-ish to my newbie eyes. Is there a better, AR-based way to
handle this issue?

How are you specifying your conditions? if you use the hash form of
conditions :some_table => (:name => ‘bob’), then rails is in general
better at figuring out table aliases and so on. Arel is also pretty
smart about this, although I don’t recall how much of this is exposed
by active record.

Fred

On 2 March 2011 14:34, Peter D Bethke [email protected] wrote:

I’ve got an issue where i have a search page that passes a field which is then
used as the criteria of the search. Problem is, I’ve set an AR has_many
relationship in the model that joins one table to another - both tables have the
same column name I’m searching on, so naturally I get an ambiguous error in sql -
it doesnt know which column to apply the search to.

If you post the code of your search, then maybe we can offer some
pointers.
But essentially, you need to dis-ambiguate (nice made-up word…) by
putting the table name in front of the column name, or by aliasing one
of the fields with “AS”.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs