Как исправить метод undefined `split 'для nil: ошибка NilClass?
У меня есть следующая строка в приложении Rails:
@images = @product.secondary_images.split(",")
Когда @product.secondary_images имеет контент в нем, это работает нормально. Однако, когда нет содержимого, я получаю эту ошибку:
undefined method `split' for nil:NilClass
Как назначить другое значение @images, если в нем нет содержимого?
Ответы
Ответ 1
Возможным решением было бы использовать try
, который возвращает нуль, если ваш метод не может быть отправлен на secondary_images
. И затем используйте OR-operator, чтобы назначить что-то еще.
@images = @product.secondary_images.try(:split, ",") || 'some other value'
Ответ 2
Вы можете использовать метод try
nil.try(:split, ",")
Ответ 3
Вообще субъективный ответ, но я бы, наверное, сам справился с этим, если бы хотел все в одной строке:
@images = @product.secondary_images.nil? ? 'another value' : @product.secondary_images.split(',')
Ответ 4
Или с помощью безопасного навигатора (&.):
nil&.split(",")