Let\'s say we have the following:
irb> Post.where(:hidden => true).to_sql
=> \"SELECT `posts`.* FROM `posts` WHERE posts.hidden = 1\"
We can take Zabba's answer further by passing the inverted query back into ActiveRecord:
table = Post.arel_table
query = table[:hidden].eq(true).not # the inverted query, still ARel
Post.where(query) # plug it back into ActiveRecord
This will return ActiveRecord objects, as you would normally expect.