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 %>
我正在使用 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 %>