我是Ruby的初学者,他希望在我的" index"中调试问题。视图。我试图列出数据集的不同值。但是,我不确定问题出在以下代码行中。
<% @datasets.each do |dataset| %>
<%= Dir[File.join(dataset.ds.path[0,dataset.ds.path.to_s.length-4], '**', '*')].count
<% end %>
答案 0 :(得分:1)
当dataset.ds.path.to_s.length-4
获得负值时,似乎会出现问题,如果发生这种情况,则在dataset.ds.path[0,-4]
被评估为0的情况下访问dataset.ds.path.to_s.length
。
解决此问题的一种方法是,如果您对否定索引感觉不错,则将[0,dataset.ds.path.to_s.length-4]
更改为[0..dataset.ds.path.to_s.length-4]
。
如果没有,那么您可以尝试在Dataset
模型中定义一个方法,如果dataset.ds.path.to_s.length-4
小于0则返回0,这样可以解决问题,因为some_array[0,0]
将返回{ {1}}。