I believe you can do that in the adapter itself. You should be able to find it under your activerecord folder (in my PC: C:\ruby\lib\ruby\gems \1.8\gems\activerecord-2.2.2\lib\active_record\connection_adapters \mysql_adapter.rb). Look for "class MysqlAdapter < AbstractAdapter" in the code and you'll see this line:
self.emulate_booleans = true Change the line to: self.emulate_booleans = false and see what happens. On Sep 30, 7:37 pm, Kendall Gifford <zettab...@gmail.com> wrote: > Hello everyone, I've got a question for the ActiveRecord gurus. > > ActiveRecord version: 2.3.4 > ActiveRecord adapter: mysql > > I'm accessing a database originally designed as the back-end data- > store for a Microsoft Access-based GUI application (using "linked" > tables). MS Access, if using linked tables to use a MySQL database > wants its boolean fields, like ActiveRecord, to by TINYINT(1) fields. > However, is makes the field "signed" and uses 0 for false and -1 for > true. > > I've taken several approaches to interfacing with boolean fields in > this database in an interoperable way (keeping boolean true values as > -1). What seems like it should be so easy/simple has yet yield a clean > solution (to me at least). > > My Example Table (tblImages): > > ImageID, UNSIGNED INTEGER, AUTOINCREMENT, PRI-KEY > IsFixed, TINYINT, DEFAULT 0 > > ActiveRecord class: > > class Image < ActiveRecord::Base > set_table_name 'tblImages' > set_primary_key 'ImageID' > def fixed > self.IsFixed_before_type_cast == "-1" > end > def fixed=(val) > self[:IsFixed] = (val ? '-1' : '0') > end > end > > The above code is just one of the many approaches I've taken. I always > get so close yet so far. Reading the value is easy by getting it prior > to type-casting and interpreting it how I want. However, coercing > ActiveRecord (and the MySQL adapter) to issue an "UPDATE tblImage SET > IsFixed = -1 ..." seem all but impossible when I issue a save! on an > instance. > > So, is there any way to tell ActiveRecord (or the MySQL adapter) to > simply disable its boolean emulation on a given field (or even the > whole table or database)? Or, does anyone have any alternate ideas > that might work instead or even better? > > Thanks for your help! > > -- > Kendall Gifford --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---