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

Can't modify frozen String error using gsub and hash

我正在尝试使用水豚创建 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')

如有任何帮助,我们将不胜感激!

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