simple_format更改文本本身

Sam*_*ong 2 ruby-on-rails ruby-on-rails-3

在Rails 3.0中,辅助方法simple_format会更改参数本身.我希望它只返回包装文本.

2.0.0-p648 :001 > Rails.version
 => "3.0.20"
2.0.0-p648 :002 > s = "Hello"
 => "Hello"
2.0.0-p648 :003 > helper.simple_format(s)
 => "<p>Hello</p>"
2.0.0-p648 :004 > s
 => "<p>Hello</p>"
Run Code Online (Sandbox Code Playgroud)

我检查了Rails 4.2,它没有改变文本.

有人可以解释一下吗?

山姆

Igo*_*dov 5

在这种方法的实现之间的差异Rails 4.2,并Rails 3.0是在Rails 3.0传递的字符串被修改(通过突变gsub!)和Rails 4.2它不是(它只是返回新修改的字符串):

Rails 4.2:

2.4.0 :006 > s = "hello"
 => "hello"
2.4.0 :007 > simple_format s
 => "<p>hello</p>"
2.4.0 :008 > s
 => "hello"
Run Code Online (Sandbox Code Playgroud)

可以在文档中找到不同实现的源代码