在我的textarea中显示降价
我正在使用BlueCloth从我的用户进入textarea的内容中通过markdown创建html,如下所示:
def create @post = Post.new(params[:post]) do |post| body = BlueCloth.new(post.body) post.body = body.to_html end ... end
这很棒! 我得到了数据库中存储的html,但是如何在用户编辑时在textarea中显示markdown? 我试过了:
def edit @post = Post.find(params[:id]) @post.body = BlueCloth.new(@post.body) @post.body.text end
我的textarea输出如下:
#
Bluecloth的文档定义不明确。 我不确定是否有一种简单的方法来转换html => markdown。
但是,没有什么能阻止您将markdown存储在数据库中,并根据需要将其转换为html。
如果你想让html成为@ post.body返回的默认值,那么你总是可以覆盖访问者。
class Post < ActiveRecord::Base ... def body BlueCloth.new(@body).to_html end def markdown @body end end
现在@ post.body返回markdown的html版本。 而@ post.markdown返回降价源。