如何为nil修复未定义的方法`split’:NilClass错误?

我的Rails应用程序中有以下行:

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

当@ product.secondary_images包含内容时,运行正常。 但是,当没有内容时,我收到此错误:

 undefined method `split' for nil:NilClass 

如果没有内容,如何为@images分配另一个值?

一个可能的解决方案是使用try返回nil,以防你的方法无法发送到secondary_images 。 然后使用OR运算符分配其他内容。

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

或者使用安全导航操作员(&。) :

 nil&.split(",") 

您可以使用try方法

 nil.try(:split, ",") 

通常是主观的答案,但我可能会以这种方式处理它,如果我想把它全部放在一行:

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