2017-08-15 44 views
2

在Rails 3.0中,帮助器方法simple_format更改参数本身。 我希望它只返回包装文本。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,它不改变文本。

有人可以解释吗?

山姆

回答

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

+0

谢谢伊戈尔。我永远无法理解为什么旧版本就是这样设计的。 –