Это зависит от того факта, что в Ruby пробелы могут быть значительными. Вы видите разные результаты, потому что Ruby интерпретирует ваш пример по-разному. Так
Первый:
"ayay".length + 1
похоже на
"ayay".length.+(1)
И второе:
"ayay".length +1
похоже на
"ayay".length(+1)
Таким образом, вы можете увидеть , почему Ruby выдает ошибку во втором случае.
Относительно проблемы count : Ruby интерпретирует код как:
User.count(+1)
И, как вы можете видеть из сгенерированного SQL, есть разница, поскольку +1
считается параметром column_name.