无法使用gsub和hash修改冻结的String错误

时间:2016-06-21 22:04:45

标签: ruby rspec capybara

我正在尝试使用capybara创建ruby rspec,并且在尝试从哈希中删除部分字符串时出现此错误:无法修改冻结的字符串

scenario "check doc" do
docs = {
  'A doc' => 'a.txt',
  'B doc' => 'b.txt',
  'C doc' => 'c.txt'
}
random_doc = docs.keys.sample
page.should have_css('.class', :text => 'Document ' + random_doc.gsub!(' doc') + ' was selected')

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

密钥名称已冻结,因此您无法对其进行修改 - 只需使用gsub而不是gsub!这样它就会返回一个修改过的字符串副本而不是尝试进行就地修改