14

Rails アプリに次の行があります。

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

@product.secondary_images にコンテンツが含まれている場合、これは正常に実行されます。ただし、コンテンツがない場合、次のエラーが発生します。

undefined method `split' for nil:NilClass

コンテンツがない場合、@images に別の値を割り当てるにはどうすればよいですか?

4

5 に答える 5

23

try考えられる解決策は、メソッドを に送信できない場合に nil を返す whichを使用することsecondary_imagesです。次に、OR 演算子を使用して別のものを割り当てます。

@images = @product.secondary_images.try(:split, ",") || 'some other value'  
于 2013-05-21T20:03:51.053 に答える
0

一般的に主観的な答えですが、すべてを1行にまとめたい場合は、おそらくこのように自分で処理します。

@images = @product.secondary_images.nil? ? 'another value' : @product.secondary_images.split(',')
于 2013-05-21T20:12:39.477 に答える