ActiveRecord find on legacy database having enum columns problem

hello,

Im interfacing a PHP app with my rails app and one of the tables im
trying to do a find on has an enum column. So when i run the find, its
adding an extra condition. This is my first time interfacing with a DB
like this so im not quite sure how to remedy my problem

This is my named_scope
named_scope :ads, lambda { |advertiser| { :conditions =>
[“advertiser_id = ? && type = ?”, advertiser, “advertisement”]}

this is what i get in the terminal

SELECT * FROM broadcast WHERE (advertiser_id = ‘5’ && type =
‘advertisement’) AND ( (broadcast.type = ‘Broadcast’ ) )

so its appending the (broadcast.type = ‘Broadcast’ ). There is a
type column in the DB that is an enum column.

any help?

2009/9/7 Bob O [email protected]:

[“advertiser_id = ? && type = ?”, advertiser, “advertisement”]}

this is what i get in the terminal

SELECT * FROM broadcast WHERE (advertiser_id = ‘5’ && type =
‘advertisement’) AND ( (broadcast.type = ‘Broadcast’ ) )

so its appending the (broadcast.type = ‘Broadcast’ ). There is a
type column in the DB that is an enum column.

The problem is that the column is named ‘type’. This is a reserved
word in rails as it used in Single Table Inheritance. If you can
change the name of the column then that should sort it. If you can’t
change it then
http://www.benlog.org/2007/1/16/legacy-rails-beware-of-type-columns
provides a work around.

Colin

Excellent. Thank you for the link. That worked great!

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