2013-05-21 26 views
10

Tôi có dòng sau trong ứng dụng Rails của tôi:Làm thế nào để sửa chữa phương thức undefined `split 'cho nil: NilClass error?

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

Khi @ product.secondary_images có nội dung trong đó, này chạy tốt. Tuy nhiên, khi không có nội dung, tôi nhận được lỗi này:

undefined method `split' for nil:NilClass 

Làm cách nào để gán một giá trị khác @images nếu không có nội dung trong đó?

Trả lời

15

Một giải pháp có thể sẽ được sử dụng try mà không quay trở lại con số không trong trường hợp phương pháp của bạn không thể được gửi đến secondary_images. Và sau đó sử dụng toán tử OR để gán một thứ khác.

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

Bạn có thể sử dụng phương pháp try

nil.try(:split, ",") 
0

câu trả lời chung chủ quan, nhưng tôi có thể xử lý nó theo cách này bản thân mình, nếu tôi muốn tất cả trong một dòng:

@images = @product.secondary_images.nil? ? 'another value' : @product.secondary_images.split(',') 
Các vấn đề liên quan