рассмотрим следующий код
def salt [] end def pepper salt = salt.map{ |grain| 'ok' } end
Дает следующий результат:
NoMethodError (undefined method `map' for nil:NilClass):
Почему именно эти обстоятельства вызывают ошибку?Это неожиданно.
Поскольку ваша локальная переменная salt равна , теневая , метод salt.Поскольку переменная salt была только что определена, ее значение равно nil.Вы можете исправить это, явно вызвав salt в экземпляре, чтобы получить метод:
salt
nil
def pepper salt = self.salt.map{ |grain| 'ok' } end