2017-08-15 78 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

謝謝伊戈爾。我永遠無法理解爲什麼舊版本就是這樣設計的。 –