无法使用 gsub 和 hash 修改冻结的字符串错误

Don*_* C. 2 ruby rspec 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')
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

Tho*_*ole 5

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