2010-12-08 70 views
2

我用RedCloth在表單中保存了純文本並將其轉換爲HTML。舉例來說,在我的形式寫這個,並保存它,將使它顯示確切的方式,我寫的一樣:如何將RedCloth.to_html轉換回可編輯的香草文本?

This sentence 
gets inserted into it 
proper html syntax 
to preserve line breakage. 

有了這個代碼:

def parse_code 
    self.text = RedCloth.new(text).to_html 
end 

然後我可以重新顯示這樣的:

= raw post.text 

但是,當我想編輯它,它返回到我爲:

<p>This sentence</p> 
<p>gets inserted into it</p> 
<p>proper html syntax</p> 
<p>to preserve line breakage</p> 

我該如何做到這一點,以便在編輯它時,它看起來與我去之前保存它的方式相同?

謝謝!

回答

3

我會離開儲存在紡織紡織代碼並執行轉換爲HTML僅在視圖:

= raw RedCloth.new(@post.text).to_html 

紡織品和HTML之間的轉換並不覺得是一個很好的做法。您的parse_code方法似乎它導致您的文本被轉換爲HTML ..並存儲到Db。

但是,如果你想將HTML轉換爲紡織品,也許clothred是爲你或閱讀this blog

1

編輯:拍攝!我誤解了這個問題!

你會使用ClothRed文本區域的值分配回紡織品:

ClothRed.new(html).to_textile 

對不起!

+0

嘿查克,謝謝你的回答,但是當我的表單顯示`= f.text_area:text`時,我將如何實現你的迴應。 – Trip 2010-12-08 19:42:32

+0

已更新我的回答。我誤解了你要做的事。對不起! – 2010-12-08 19:54:49

+0

查克,你是最棒的!謝謝。我必須做一點研究才能使這有意義。我現在正在考慮整個任務。用格式化的文本保存數據,然後檢索格式化的數據,但沒有可編輯文本區域中的標籤。 「ClothRed」?多麼有創意的名字......哈哈。 – Trip 2010-12-09 03:18:07

0

如果我理解你是正確的,那麼你將HTML輸出存儲在數據庫中。而不是這樣做,存儲原始紡織品內容,然後將其轉換爲HTML時,顯示給用戶。