В ваших первых двух примерах анализатор Ruby уверен, что вы вызываете методы, поскольку ключевое слово next
не может быть использовано таким образом.
В третьем примере похоже, что вы используете ключевое слово next
вместо вызова метода. На этом этапе анализатор не может знать, что вы на самом деле хотите вызвать метод next
(который может существовать или не существовать).
Таким образом, вы должны направлять синтаксический анализатор, чтобы избежать этих неясностей. Вы можете использовать явный получатель, как во втором примере, или использовать такие конструкции, как send(:next)
вместо