Rails其實有內建轉換行的method叫simple_format,但是他會把連續兩個以上換行換成<p>…</p>,這有點太聰明了,又不知道有沒有其他更好的做法,所以我只好自己寫。

simple_format還可以擋javascript

在application_helper.rb

	def nl2br(html)  
	 raw(h(html).gsub(/[(\n)(\r)]/, "\n" => "<br/>", "\r" => "" ))  
	end  
	先將內容擋掉不該有的html tag,再把\n替換成<br>,這樣子可以避免被塞入有危險性的tag,但又能放行自己的換行tag。  

h
<%=h “
” %>
# 其實是 h(“
”)
# => <br/>
raw
<%=raw “
” %>
# 其實是 raw(“
”)
# =>

.html_safe
<%= “
“.html_safe %>
# 跟 raw(“
”) 是一樣的
# =>

在Rails 2,預設是raw,在Rails 3剛好相反,預設是harm
也就是說:
Rails 3:
<%= “
” %> 擋掉html
<%=raw “
” %> 直接出html

	Rails 2:  
	<%=h "<br/>" %> 擋掉html  
	<%= "<br/>" %> 直接出html  

在Rails 3加h也是沒關係的