Rails 2.3.11 - > 3.2.3带正则表达式的简单gsub不起作用

时间:2012-04-19 10:18:14

标签: ruby-on-rails regex gsub

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

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>"

Rails 2.3.11上的示例:http://moly.hu/karcok/150362

在Rails 3.2.3上也是如此:http://moly.hu:3000/karcok/150362

怎么了?

1 个答案:

答案 0 :(得分:0)

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

Frost建议升级:

  

更新我上面的评论:我刚尝试创建一个新的rails 3.2.3项目,将该方法放在application_helper中并从具有相同文本的视图中调用它,并且工作得很好。我想你在其他地方错过了什么。

Nagy Bence确认:

  

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