Ruby on rails 轨道2.3.11->;3.2.3带有正则表达式的简单gsub不起作用

Ruby on rails 轨道2.3.11->;3.2.3带有正则表达式的简单gsub不起作用,ruby-on-rails,regex,gsub,Ruby On Rails,Regex,Gsub,我试图将我的Rails 2.3.11应用程序升级到Rails 3.2.3,但ApplicationHelper中的此功能在浏览器中不再正常工作(在Rails控制台中一切正常): def基本标记(文本) 如果文本 text.gsub!(/(\A |\s | \[| \()\(.+?)\u/iu,'\1\2') text.gsub!(/(\A |\s | \[| \()。+?)([^&])#/iu,'\1\2\3') text.gsub!('->','→') text.gsub!(“从评论中复制答案

我试图将我的Rails 2.3.11应用程序升级到Rails 3.2.3,但ApplicationHelper中的此功能在浏览器中不再正常工作(在Rails控制台中一切正常):

def基本标记(文本)
如果文本
text.gsub!(/(\A |\s | \[| \()\(.+?)\u/iu,'\1\2')
text.gsub!(/(\A |\s | \[| \()。+?)([^&])#/iu,'\1\2\3')
text.gsub!('->','→')

text.gsub!(“从评论中复制答案,以便从“未回答”筛选器中删除此问题:

建议升级:


更新我上面的评论:我刚刚尝试创建一个新的rails 3.2.3项目,将该方法放在
应用程序\u helper
中,并从具有相同文本的视图调用它,效果很好。我认为您在其他地方遗漏了一些东西

确认:


问题解决了,也许Rails的simple_格式在2.3.11和3.2.3之间发生了变化,但现在它运行正常。感谢您的评论


从评论中复制答案,以便从“未回答”筛选器中删除此问题:

建议升级:


更新我上面的评论:我刚刚尝试创建一个新的rails 3.2.3项目,将该方法放在
应用程序\u helper
中,并从具有相同文本的视图调用它,效果很好。我认为您在其他地方遗漏了一些东西

确认:


问题解决了,也许Rails的simple_格式在2.3.11和3.2.3之间发生了变化,但现在它运行正常。感谢您的评论


可能正在清理您发送的文本。请尝试使用text.html\u safe查看del标记是否正在被替换,并且似乎没有卫生问题,输出中出现了标记字符。您确定没有在调用
基本\u标记(文本)的视图中更改任何内容吗
?查看视图代码片段可能会有所帮助,这样就不会有什么奇怪的事情发生。该方法本身似乎工作正常。更新我上面的评论:我刚刚尝试创建了一个新的rails 3.2.3项目,将该方法放在
应用程序\u helper
中,并从具有相同文本的视图调用它,效果很好。我认为您在其他地方遗漏了一些内容。问题解决了,也许Rails的simple_格式在2.3.11和3.2.3之间发生了更改,但现在它运行正常。感谢您的评论!也许您发送的文本正在被清理。请尝试使用text.html_safe查看是否正在替换del标记,并且看起来没有卫生问题,标记字符出现在输出中。您确定在调用
basic\u标记(文本)的视图中没有更改任何内容吗
?查看视图代码片段可能会有所帮助,这样就不会有什么奇怪的事情发生。该方法本身似乎工作正常。更新我上面的评论:我刚刚尝试创建了一个新的rails 3.2.3项目,将该方法放在
应用程序\u helper
中,并从具有相同文本的视图调用它,效果很好。我认为您在其他地方遗漏了一些内容。问题解决了,也许Rails的simple_格式在2.3.11和3.2.3之间发生了更改,但现在运行正常。感谢您的评论!
def basic_markup(text)
  if text
    text.gsub!(/(\A|\s|\[|\()_(.+?)_/iu, '\1<em>\2</em>')
    text.gsub!(/(\A|\s|\[|\()#(.+?)([^&])#/iu, '\1<del>\2\3</del>')
    text.gsub!('->', '→')
    text.gsub!('<-', '←')
  end
  text
end

text = '#strikeout# normal _italic_'
puts basic_markup(text)
# Rails 2.3.11
# => "<del>strikeout</del> normal <em>italic</em>"
# Rails 3.2.3
# => "#strikeout# normal <em>italic</em>"