Правильная форма Post.where(:read => 0)
Ваша текущая форма сравнивает строку 'read'
со значением 0
. Если мы введем это сравнение в консоль Ruby, мы увидим, что происходит:
> 'read' == 0
=> false
Итак, это сравнение возвращает false
. И если вы просто наберете Post.where(false)
в консоли, вы увидите, что она возвращает все записи Post
, что объясняет, почему вы получаете каждый Post
возвращаемый объект. Другими словами, строка в том виде, в каком вы ее напечатали, эквивалентна вводу Post.where(false)