On 16 February 2011 11:43, Colin Law <[email protected]> wrote: > On 16 February 2011 09:44, Colin Law <[email protected]> wrote: >> On 16 February 2011 05:42, Mark Kremer <[email protected]> wrote: >>> It may seem a bit odd with the where method chained twice like that, but the >>> query with the OR (Rails 3.0.4) will probably get you the result you want >>> whereas the query with the AND (Rails 3.0.3) will return 0 records at all >>> times (because the same attribute can't have two values). >> >> I disagree that OR is the result one would want if one were to code >> this. I agree it is apparently a useless query and obviously one >> would not code it exactly like this. If the sql for this is >> incorrectly generated however, it is likely that a more subtle, and >> useful, query may also be encoded wrongly. The principle of chained >> where is that the first one is performed, then the next is performed >> on the results of the first. At least that is how I understand it. >> >> Consider: >> State.where(:abbreviation => 'TX').where("abbreviation = 'NE'") >> This (correctly in my view) uses AND in the query. >> As 3.0.4 stands at the moment the above yields a different result to >> State.where(:abbreviation => 'TX').where(:abbreviation => 'NE') >> which seems incorrect to me. >> >> I will post on rails-core to see what the response is there. > > I posted to rails-core and apparently it is by design rather than a > bug. The question seems to have stirred up a bit of a furore however, > see > http://groups.google.com/group/rubyonrails-core/browse_thread/thread/407f746fd1de6636
I see this has now been fixed in the Rails 3.0.5, though I have not tried it myself yet. Thanks to Jeremy for finding it in the first place. 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 this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

