Conrad Taylor wrote:
> On Mon, Jul 27, 2009 at 5:06 PM, Jeff Lewis <[email protected]> 
> wrote:

>> > > On Jul 27, 5:45 pm, Greg Willits <[email protected]>
>> > AWDWR 3rd Ed pg 320:

> Greg, if you're referencing AWDwR 3ed, then you must have read the 
> section
> 17.1 which explains the mappings between Ruby symbols and the underlying
> database in regards to migrations.

Sure, but... (to clarify how I drew my conclusions)

That describes what a migration will create--which could be independent 
of how the accessor works. IOW, it doesn't necessarily imply that 
tinyint(1) is the only valid field type on which the ? accessor will 
work. In fact, that's exactly what I am saying, the rest of the text in 
the book which covers this topic specifically implies that a character 
field will work.

The entire quote:

-------------
To query a column as a boolean value in a condition, we must append a 
ques-
tion mark to the column’s name:

# INSTEAD, DO THIS
user = Users.find_by_name("Dave")
if user.superuser?
  grant_privileges
end

This form of attribute accessor looks at the column’s value. It is 
interpreted as
false only if it is the number 0; one of the strings "0", "f", "false", 
or "" (the empty
string); a nil; or the constant false. Otherwise, it is interpreted as 
true.
--------------

This happens to be the exact same text from the 2nd Edition, and this 
behavior is true for 1.2 -- a MySQL varchar(1) does behave with the 
expected true/false results with string values in the column as the text 
above describes. But for 2.3 it must be a tinyint(1) and obviously only 
the 0 and 1 values are usable.

Anyway, not a big deal. I changed the field type, and I added an Errata 
to the pragprog web site for the book.

-- gw


-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to