13

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

<%= f.text_area :content %>

我可以使用另一个标签来代替 text_area,这将允许我这样做吗?

4

6 回答 6

20

你在视图中试过这个吗?

 <%= content.html_safe %>
于 2011-07-10T01:34:31.283 回答
14

这是一个老问题,但我想有一个非常直截了当的视图助手: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 属性相同。

于 2016-04-05T04:28:27.003 回答
6

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

例如:

<%= @item.description.html_safe %>
于 2011-09-14T17:35:34.973 回答
1

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

例如

<%= @user.bio.bb_code %>

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

于 2011-07-10T04:05:40.403 回答
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 %>

请参阅动作文本 Rails 指南

于 2019-02-15T06:23:57.660 回答
0

text_area_tag可能是您想要的。

于 2010-05-14T00:24:38.697 回答