Utilizzando lo stile rails 3 come scriverei l'opposto di:
Foo.includes(:bar).where(:bars=>{:id=>nil})
Voglio trovare dove ID NON è zero. Provai:
Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql
Ma questo ritorna:
=> "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)"
Non è sicuramente quello di cui ho bisogno e sembra quasi un bug in ARel.
!nil
restituiscetrue
in Ruby, e AREL traducetrue
ad1
in una query SQL. Quindi la query generata è in effetti ciò che hai richiesto: non si trattava di un bug ARel.