如何阻止rake --tasks
中止? “拆分”已被弃用吗?
正在输出此错误...(full trace)
[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
(full text)
296 def first_sentence(string)
297 string.split(/\.[ \t]|\.$|\n/).first
298 end
299 private :first_sentence
ruby'1.9.3',引擎:'jruby',engine_version:'1.7.5'| rails(3.2.14)| rake(10.1.0)
答案 0 :(得分:1)
不推荐使用split方法。但在你的情况下,字符串似乎是零。请检查您传递给first_sentence方法的内容。
修改强>
这似乎是rake gem本身的一个问题。请检查此网址
https://github.com/jimweirich/rake/issues/220
但是,宝石所有者认为这是有效的,并建议用户改为使用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
答案 1 :(得分:1)
作为安全措施,您应该使用to_s
方法,这样它就不会引发错误undefined method 'split' for nil:NilClass
def first_sentence(string)
string.to_s.split(/\.[ \t]|\.$|\n/).first
end
private :first_sentence