如何将RedCloth添加到form_for?

时间:2010-11-26 03:57:52

标签: ruby-on-rails redcloth

一个令人尴尬的问题,但我似乎无法将文档翻译成实际的form_for。这是所有网站提供的..

RedCloth.new("Some text").to_html
 #=> "<p>Some text</p>"

我知道这就是我保存后解析它的方式。但是如何将其保存为标记文本?

这是我尝试开始这个,但我不知道如何设置参数以将textarea保存为RedCloth。有什么想法吗?

- form_for @text do |f|
   # some RedCloth instantiation
   f.submit

1 个答案:

答案 0 :(得分:3)

您不会像这样保存解析为RedCloth的参数,也不会推荐它。将其解析为RedCloth将导致原始值丢失,除非您将输出存储在备用字段中,这是我 推荐的。

您可以在模型中使用before_save来解析该值并将其存储:

before_save :parse_text

# your model methods go here

private

  def parse_text
    self.parsed_text = RedCloth.new(text).to_html
  end

如果要在视图中呈现parsed_text值,则必须通过执行此操作告诉Rails它是安全的:

@object.parsed_text.html_safe

但是,此处包含的代码并不能说明人们混合使用Markdown和HTML,因此请非常小心使用它。