En utilisant le style des rails 3, comment pourrais-je écrire le contraire de:
Foo.includes(:bar).where(:bars=>{:id=>nil})
Je veux trouver où id n'est PAS nul. J'ai essayé:
Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql
Mais cela revient:
=> "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)"
Ce n'est certainement pas ce dont j'ai besoin, et cela ressemble presque à un bug dans ARel.
!nil
est évaluétrue
dans Ruby et ARel se traduittrue
par1
dans une requête SQL. Donc, la requête générée est en fait ce que vous avez demandé - ce n'était pas un bug ARel.