我有一个正在创建的 Rails 应用程序(博客)。很基础的东西。在我的内容区域中,我有一个用于帖子内容的文本区域。我需要在文本区域中包含一些 html(链接、格式等)。
<%= f.text_area :content %>
我可以使用另一个标签来代替 text_area,这将允许我这样做吗?
我有一个正在创建的 Rails 应用程序(博客)。很基础的东西。在我的内容区域中,我有一个用于帖子内容的文本区域。我需要在文本区域中包含一些 html(链接、格式等)。
<%= f.text_area :content %>
我可以使用另一个标签来代替 text_area,这将允许我这样做吗?
你在视图中试过这个吗?
<%= content.html_safe %>
这是一个老问题,但我想有一个非常直截了当的视图助手:sanitize。我假设您想要呈现用户输入的 HTML 标签。为此,将内容保存为字符串并使用 sanitize 呈现为 HTML。
示例用法:
sanitize @post, tags: %w(strong em a code pre h2 h3 p blockquote ul ol li br),
attributes: %w(href class)
tags 选项允许您指定要使用的标签,并且与 html 属性相同。
HTML 安全方法实际上是 .html_safe。刚刚在文本字段上进行了测试。
例如:
<%= @item.description.html_safe %>
在即将推出的 Rails 6 中,您将能够使用新rich_text_area
标签在表单中创建富文本编辑器,如下所示:
<%= form_with(model: article) do |f| %>
<div class="field">
<%= f.label :content %>
<%= f.rich_text_area :content %>
</div>
<% end %>
text_area_tag可能是您想要的。