On 13 November 2012 21:05, byrnejb <[email protected]> wrote: > > On Tuesday, November 13, 2012 3:45:30 PM UTC-5, Colin Law wrote: >> >> Look in log/development.log to see what the difference is in the >> queries (which should be logged there). Then it will probably make >> sense. > > > This is the difference: > > (0.2ms) SELECT COUNT(*) FROM "tests" WHERE (is_billed = 'false') > vice > (0.2ms) SELECT COUNT(*) FROM "tests" WHERE (is_billed = 'f') > > The second form is generated from the ( :is_billed => false ) construction. > If I cut and paste "is_billed = 'f'" into the where clause then it works. I > presume this is some sort of implementation issue with sqlite3.
By using :is_billed => false you are telling rails that you want the value to be whatever rails uses as the logical value false (which appears to be "f"). By specifying yourself that the contents of the column must be the string "false" it does not find the records. I am a bit surprised that the sqlite example you gave works. Are you sure you entered the query exactly as you showed? I am not that familiar with sqlite however. Colin -- 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 https://groups.google.com/groups/opt_out.

