Как исправить неопределенный метод "split" для nil: ошибка NilClass?

у меня есть следующая строка в моем приложении Rails:

@images = @product.secondary_images.split(",")

когда @product.secondary_images имеет контент в нем, это работает нормально. Однако, когда нет контента, я получаю эту ошибку:

undefined method `split' for nil:NilClass

Как я могу назначить другое значение @images, Если в нем нет содержимого?

4 ответов


возможным решением было бы использовать try который возвращает nil в случае, если ваш метод не может быть отправлен в secondary_images. А затем используйте оператор OR, чтобы назначить что-то еще.

@images = @product.secondary_images.try(:split, ",") || 'some other value'  

можно использовать try метод

nil.try(:split, ",")

вообще субъективный ответ, но я, вероятно, справился бы с этим сам, если бы хотел, чтобы все это было в одной строке:

@images = @product.secondary_images.nil? ? 'another value' : @product.secondary_images.split(',')