Как исправить метод 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(',')