【问题标题】:undefined method `+' for nil:NilClass in RORROR 中 nil:NilClass 的未定义方法“+”
【发布时间】: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>' : '')

这是个好主意吗?

【问题讨论】:

  • 这段代码太复杂了,看不懂。请尝试以人类可读模式粘贴。此外,从长远来看,这种代码会伤害你。

标签: ruby-on-rails datatables


【解决方案1】:

roster.training_sets&amp;.first&amp;.title 返回零。使用to_s解决问题。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 2013-06-30
  • 1970-01-01
相关资源
最近更新 更多