0
class Music < ActiveRecord::Base
 attr_accessible :counter, :video, :video_file_name

   def name

    last=video_file_name.rindex('.') //line 1
    video_file_name[last,4]="" //line 2
    video_file_name //line3
  end
end

我有一个 Music 类,并且想定义一个name方法,我可以在视图中使用它,例如:@music.name。现在,我可以获得第video_file_name.rindex('.')1 行中的值,但我不能在第 2 行中使用它(最后)。它说"no implicit conversion from nil to integer"。如果我将最后一个变量更改为数字,它将起作用。

有谁知道发生了什么?

4

1 回答 1

0

last错误是说nil

rindexnil如果找不到您要查找的子字符串,则返回。

因此

last = video_file_name.rindex('.')
# last is nil because it does not contain a .
video_file_name[last, 4]="" # this line will crash because you are giving a nil index
于 2013-04-22T11:29:25.203 回答