Tag Archives: safebuffer

Rails gsub 的坑 (SafeBuffer 相关)

代码一 s = “[a1111][b22222][v4321342]” s.gsub(/\[\w(\d+)\]/) do $1 end 结果 => “1111222224321342″ 代码二 s = ERB::Util.html_escape(“[a1111][b22222][v4321342]“) s.gsub(/\[\w(\d+)\]/) do $1 end 结果 => “432134243213424321342″ 怎么样,很不一样哈 一开始想 html_escape 就是转换几个字符,怎么会出现这样的情况,仔细查看之后 发现 html_escape 返回的是 SafeBuffer 对象,就是这个 SafeBuffer 导致的这个问题, 使用 to_s 还不行,原来 SafeBuffer 重写了 to_s def … Continue reading

Posted in ruby on rails | Tagged , , | Leave a comment