2

我尝试将我的 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

怎么了?

4

1 回答 1

0

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

Frost建议升级:

更新我上面的评论:我刚刚尝试创建一个新的 rails 3.2.3 项目,将该方法放入application_helper并从具有相同文本的视图中调用它,并且工作正常。我认为您在其他地方遗漏了一些东西。

纳吉·本斯证实:

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

于 2013-10-09T07:13:17.733 回答