-1

我怎样才能停止rake --tasks流产?“拆分”是否已被弃用?

它正在输出此错误...(完整跟踪

[rake --tasks] rake aborted!
undefined method `split' for nil:NilClass
/Users/Crimbo/.rvm/rubies/jruby-1.7.5/lib/ruby/gems/shared/gems/rake-10.1.0/lib/rake/task.rb:297:in `first_sentence'
.
.
.

有问题的行... task.rb全文

296    def first_sentence(string)
297      string.split(/\.[ \t]|\.$|\n/).first
298    end
299    private :first_sentence

红宝石'1.9.3',引擎:'jruby',engine_version:'1.7.5' | 导轨 (3.2.14) | 耙子 (10.1.0)

4

2 回答 2

1

不推荐使用 split 方法。但在你的情况下,字符串似乎为零。请检查您传递给方法 first_sentence 的内容。

编辑:

这似乎是 rake gem 本身的一个问题。请检查这个网址,

https://github.com/jimweirich/rake/issues/220

但是,gem 所有者认为这是有效的,并建议用户rake -T --all改用。


补丁解决方案

如果您仍想使用rake --tasks,请按照Amit Thawait所说的...

在 中使用to_s方法task.rb,这样它就不会抛出错误undefined method 'split' for nil:NilClass

def first_sentence(string)
   string.to_s.split(/\.[ \t]|\.$|\n/).first
end
private :first_sentence
于 2013-10-09T10:51:31.023 回答
1

作为一项安全措施,您应该使用to_s方法,以免它引发错误undefined method 'split' for nil:NilClass

def first_sentence(string)
  string.to_s.split(/\.[ \t]|\.$|\n/).first
end
private :first_sentence
于 2013-10-09T11:04:13.587 回答