Rails - 无法让 gsub 替换字符串文本

Rails - Cant get gsub to work to replace string text

我正在使用 liquid gem 和所见即所得的用户帖子编辑器。我正在尝试替换一些在显示之前提交的内容。为此,我尝试了 .gsub 但它根本不起作用

 <% template = Liquid::Template.parse(@category.template)  %>

 <% render = template.render(@keys_values_hash) %>

 <% content = render.gsub!('data-imgslap=', 'data-slap=') %>

 <% content.html_safe %>

内容显示正常,一切正常,但文本未从 gsub 中替换

我希望它只替换一件事,所以我知道它有效。但是一旦成功,我想更换一些东西。我将如何使用 gsub 来替换 'text1', 'replacement1''text2', 'replacement2' 以及为什么它不能像我现在设置的那样仅用于一个替换。

数据以字符串的形式存储,如果重要的话会从数据库中获取。

更新

成功了。忘记在 <%= on content.html_safe %>

上添加等号

仍然遇到在一个字符串上更改 2 个 gsub 的问题,这是我没有更改任何编码的问题

 <% template = Liquid::Template.parse(@category.template)  %>

 <% render = template.render(@keys_values_hash) %>

  <%  
  replacements = [ ['data-imgslap=', 'src='], [' src="http://i.imgur.com/bEDR9dc.png"', ''] ]
  replacements.each {|replacement| render.gsub(replacement[0], replacement[1])}
  %>

 <%=  render.html_safe %>

从 Whosebug 上的另一个问题得到这个,但它对我不起作用。

一般情况下,不要在 ERB 中使用 multi-line 语句。做成两行。并使用 gsub! 更改 render 对象。

<% replacements = [ ['data-imgslap=', 'src='], ['src="http://i.imgur.com/bEDR9dc.png"', ''] ] %>
<% replacements.each {|replacement| render.gsub!(replacement[0], replacement[1])} %> 
<%=  render.html_safe %>