simple_format更改文本本身

时间:2017-08-15 18:13:46

标签: 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>"

我查看了Rails 4.2并且它没有更改文本。

有人可以解释一下吗?

萨姆

1 个答案:

答案 0 :(得分:5)

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

可以在documentation

中找到不同实现的源代码