我想用ruby中的gsub函数替换字符串中的某个单词,但有时可以正常工作,并且在某些情况下会出现此错误?有任何问题,这种格式在ruby中用gsub函数替换单词
NoMethodError (undefined method `gsub!' for nil:NilClass):
model.rb
class Test < ActiveRecord::Base
NEW = 1
WAY = 2
DELTA = 3
BODY = {
NEW => "replace this ID1",
WAY => "replace this ID2 and ID3",
DELTA => "replace this ID4"
}
end
another_model.rb
class Check < ActiveRecord::Base
Test::BODY[2].gsub!("ID2", self.id).gsub!("ID3", self.name)
end
实际上你使用gsub的字符串是零,有时这就是它抛出错误的原因。 'Test :: BODY [2]'在某些情况下具有零值。 – Deep 2015-02-06 10:32:35
@Fietsband - 'WAY'是一个常数等于2. – BroiSatse 2015-02-06 10:34:21
@broiSatse嗯哎呀,错过了那部分。删除了我的评论,因为它是无关紧要的。 – Biketire 2015-02-09 12:47:49