Это проблема приоритета оператора. Оператор == имеет более высокий приоритет, чем ||.
от irb:
1 == 2 or 1 == 3
=> false
1 == 2 or 3
=> 2 (which evaluates in an expression as true)
Если мы поиграем с вашим исходным кодом:
id = 7
id == 53 or id == 54
=> false
id == 53 || 54
=> 55 (which would evaluate to true)