未定义的方法`[]'为零:NilClass(路径)

时间:2018-02-19 18:45:08

标签: ruby ruby-on-rails-3 ruby-on-rails-4

我是Ruby的初学者,他希望在我的" index"中调试问题。视图。我试图列出数据集的不同值。但是,我不确定问题出在以下代码行中。

 <% @datasets.each do |dataset| %>
   <%= Dir[File.join(dataset.ds.path[0,dataset.ds.path.to_s.length-4], '**', '*')].count
  <% end %>

1 个答案:

答案 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}}。