我有一個textarea字段,用戶可以輸入內容。當在一個頁面上顯示它們的條目時,rails會爲每個換行符返回\n
,這對頁面上的html沒有任何中斷。解析textareas中的換行符而不允許所有的html標籤
從我所收集,解決這個得到的標準方式是.gsub
命令,用<br />
更換\n
,然後在年底.html_safe
,確保<br />
呈現。
問題是,我不想html_safe的內容 - html應該仍然被替換,但<br />
標籤應該被注入(非轉義)的內容。
建議感激。
我有一個textarea字段,用戶可以輸入內容。當在一個頁面上顯示它們的條目時,rails會爲每個換行符返回\n
,這對頁面上的html沒有任何中斷。解析textareas中的換行符而不允許所有的html標籤
從我所收集,解決這個得到的標準方式是.gsub
命令,用<br />
更換\n
,然後在年底.html_safe
,確保<br />
呈現。
問題是,我不想html_safe的內容 - html應該仍然被替換,但<br />
標籤應該被注入(非轉義)的內容。
建議感激。
simple_format
方法適用於格式化換行符。它在<p>
標籤中包裝文本塊,並將換行符轉換爲換行符(<br>
)(雙換行符將以下文本分成第二段)。
但它不會轉義其他html字符,而是允許它們。對於simple_format
以及sanitize組合後應該做的很好。嘗試使用這樣的:
<%=raw sanitize(simple_format(@article.body), :tags => %w(br p)) %>
取決於你想做什麼,你可以存儲\n
,因爲它是什麼,然後,在屏幕上顯示的內容時,用(h @comment.content).gsub("\n", '<br>')
,這是第一次逃避所有的HTML標籤,然後更換\n
與<br>
如果你想在文本區域中可見,進入HTML標籤,但還是想換行顯示,試試這個:
<%= simple_format(h @article.body) %>
的「H」引述所有HTML特殊字符和「simple_format」然後將換行符轉換爲<br>。
所有這一切都可以通過使用<pre>
標籤來避免。這也具有保留標籤的優點。例如
<pre><%= @article.body %></pre>
完美 - 非常感謝。 ;-) – PlankTon 2010-11-23 08:00:00