我想用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