在Rails中,如何在文本区域中允许一些html?

问题描述 投票:11回答:6

我有一个我正在创建的Rails应用程序(博客)。很基本的东西。在我的内容区域中,我有一个文章区域的帖子内容。我需要在文本区域中包含一些html(链接,格式化等)。

<%= f.text_area :content %>

是否有另一个标签,我可以使用而不是text_area,这将允许我这样做?

html ruby-on-rails formatting erb
6个回答
18
投票

你在意见中试过这个吗?

 <%= content.html_safe %>

10
投票

这是一个老问题,但我想这是一个非常直接的视图助手:sanitize。我认为你想要呈现用户输入的HTML标签。为此,将内容保存为字符串并使用清理呈现为HTML。

用法示例:

sanitize @post, tags: %w(strong em a code pre h2 h3 p blockquote ul ol li br),
                attributes: %w(href class)

tags选项允许您指定要使用的标记以及与html属性相同的标记。


5
投票

HTML安全方法实际上是.html_safe。刚刚在文本字段上测试过。

例如:

<%= @item.description.html_safe %>

1
投票

您是否正在寻找类似于在stackoverflow中发布时获得的粗体,斜体,...选项?如果是这样,我会建议Markitup,一个jQuery的文本编辑器插件。完成此设置后,您将能够在文本区域中输入标记(例如Markdown,bbcode,...)。当您在页面上实际显示结果时,您只需要让Ruby解析您选择的标记语言。

EG

<%= @user.bio.bb_code %>

使用此方法,您可以让用户以安全的方式输入样式文本。


1
投票

使用即将推出的Rails 6,您将能够使用新的rich_text_area标记在表单中创建一个富文本编辑器,如下所示:

<%= form_with(model: article) do |f| %>
  <div class="field">
    <%= f.label :content %>
    <%= f.rich_text_area :content %>
  </div>
<% end %>

Action Text Rails Guide


0
投票

text_area_tag可能就是你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.