0

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

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

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

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

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

1 回答 1

3

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

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

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 的人,所以要非常小心你如何使用它。

于 2010-11-26T06:01:40.257 回答