代码之家  ›  专栏  ›  技术社区  ›  Trip

如何在表格中添加红布?

  •  0
  • Trip  · 技术社区  · 14 年前

    一个令人苦恼的问题,但我似乎无法将文档翻译成实际的形式。这是网站提供的全部内容。

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

    我明白了,在它被保存之后,我就是这样分析它的。但如何将其保存为标记文本?

    这是我在开始时的尝试,但我不知道如何设置参数来将文本区域保存为红布。有什么想法吗?

    - form_for @text do |f|
       # some RedCloth instantiation
       f.submit
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Ryan Bigg Andrés Bonilla    14 年前

    您不会将解析后的参数保存为那样的红布,我也不会推荐它。将其解析为红布将导致原始值丢失,除非您将输出存储在另一个字段中,这就是 推荐。

    您可以使用 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
    

    但是,这里包含的代码并不能解释人们混合了降价和HTML,所以 非常 小心使用。