2010-12-08 41 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时,显示给用户。