如何为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(',')