【发布时间】:2021-12-21 00:34:09
【问题描述】:
我正在处理服务器端的数据表列。
column << roster.training_sets&.first&.title + (roster.training_sets.size>1 ? '<br><a class="fa-sm" data-target="#trainingSet-'+roster.id.to_s+'" data-toggle="modal" href="#">See more</a><div aria-hidden="true" aria-labelledby="exampleModalLabelTrainingSet" class="modal fade bd-example-modal-lg" id="trainingSet-' + roster.id.to_s + '" role="dialog" tabindex="-1"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">विषयगत क्षेत्र</h5><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true"> ×</span></button></div><div class="modal-body"><ul class="bg-light p-3" style="line-height: 30px;">' + (roster.training_sets.map {|t_set| t_set.title }).map(&:inspect).join('<br>') + '</ul></div></div></div></div>' : '')
它工作正常。当我过滤数据时,也没有问题可以正常工作。但是当我重置我的过滤器时,得到一个错误 undefined method `+' for nil:NilClass。
通过添加解决这个问题
column << roster.training_sets&.first&.title += (roster.training_sets.size>1 ? '<br><a class="fa-sm" data-target="#trainingSet-'+roster.id.to_s+'" data-toggle="modal" href="#">See more</a><div aria-hidden="true" aria-labelledby="exampleModalLabelTrainingSet" class="modal fade bd-example-modal-lg" id="trainingSet-' + roster.id.to_s + '" role="dialog" tabindex="-1"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">विषयगत क्षेत्र</h5><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true"> ×</span></button></div><div class="modal-body"><ul class="bg-light p-3" style="line-height: 30px;">' + (roster.training_sets.map {|t_set| t_set.title }).map(&:inspect).join('<br>') + '</ul></div></div></div></div>' : '')
这是个好主意吗?
【问题讨论】:
-
这段代码太复杂了,看不懂。请尝试以人类可读模式粘贴。此外,从长远来看,这种代码会伤害你。