首页 > 解决方案 > 具有两种不同格式的渲染属性

问题描述

在过去的几年里,我有一个使用 markdown 语言的属性的对象,最近该属性现在切换到使用 html。如何使用标记语言呈现所有过去的广告系列描述以及如何使用 .html_safe 呈现所有新的广告系列描述

html_safe

<h6 class="text-muted" itemprop="description">
    <%= @campaign.product_description.html_safe %>
</h6>

降价

<h6 class="text-muted" itemprop="description">
  <%= Campaign::Format @campaign.product_description, {render_html: true} %>
</h6>

如何渲染两者?这样,对于所有旧广告系列,它会呈现标记,而对于新广告系列,它会呈现 html。当我在同一行包含 html_safe 和 markdown 时,它只做标记,而不是来自 WYSIWYG 编辑器的 html。

标签: ruby-on-rails

解决方案


几个选项:

  1. 为您的广告系列添加标志。类似的东西uses_html_description。相应地设置其值。并在视图中打开它。
  2. 进行数据迁移并将旧格式的所有描述替换为新的 html 格式。

在这两者之间,我会选择后者。


推荐阅读