Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将字符串动态呈现为html_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 将字符串动态呈现为html

Ruby on rails 将字符串动态呈现为html,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的输入可以是字符串,也可以是html字符串。我已经知道如何识别字符串是否为html,但我不知道如何让浏览器将字符串解释为html 例如,我不希望页面上出现,而是希望实际的链接呈现为: 查看我尝试执行此操作的代码: <div class="description"> <%= p.description %> <div> 听起来您需要使用,如果您的代码如下所示: @your_bit_of_html = '<a href="www.google

我的输入可以是字符串,也可以是html字符串。我已经知道如何识别字符串是否为html,但我不知道如何让浏览器将字符串解释为html

例如,我不希望页面上出现
,而是希望实际的链接呈现为:

查看我尝试执行此操作的代码:

<div class="description">    
  <%= p.description %>
<div>

听起来您需要使用,如果您的代码如下所示:

@your_bit_of_html = '<a href="www.google.com"> Click here!! </a>'
<%= raw @your_bit_of_html %>
@your_bit_of_html=''
那么您的视图ERB应该如下所示:

@your_bit_of_html = '<a href="www.google.com"> Click here!! </a>'
<%= raw @your_bit_of_html %>

现在,您已经包括了您的雇员再培训局的样本:

<div class="description">    
  <%= raw p.description %>
<div>


使用
raw
假定您已正确编码和清除了要输出的任何HTML,因此您需要格外小心。

听起来您需要使用,如果您的代码如下所示:

@your_bit_of_html = '<a href="www.google.com"> Click here!! </a>'
<%= raw @your_bit_of_html %>
@your_bit_of_html=''
那么您的视图ERB应该如下所示:

@your_bit_of_html = '<a href="www.google.com"> Click here!! </a>'
<%= raw @your_bit_of_html %>

现在,您已经包括了您的雇员再培训局的样本:

<div class="description">    
  <%= raw p.description %>
<div>


使用
raw
假定您已正确编码和清除了要输出的任何HTML,因此您需要格外小心。

您需要通过以下两种方式之一将字符串标记为“HTML安全”:

<%= raw @string %>

。。。或者通过将字符串显式标记为html_安全:

<%= @string.html_safe %>


但是:请记住,如果此输入来自不受信任的用户(即除您之外的任何人!),则这可能是一种危险的策略,因为它将允许跨站点脚本攻击。请务必阅读rails,了解有关此风险以及如何有效缓解此风险的更多信息。

您需要通过以下两种方式之一将字符串标记为“html安全”:

<%= raw @string %>

。。。或者通过将字符串显式标记为html_安全:

<%= @string.html_safe %>


但是:请记住,如果此输入来自不受信任的用户(即除您之外的任何人!),则这可能是一种危险的策略,因为它将允许跨站点脚本攻击。请务必阅读rails,了解有关此风险以及如何有效缓解此风险的更多信息。

您可以粘贴视图代码吗?当然,我在尝试执行此操作的地方添加了一行。您可以粘贴视图代码吗?当然,我在尝试执行此操作的地方添加了一行。很难在这两个答案之间进行选择。信息量大,而且很有帮助。因为安全提示,所以选择这个。我没想到。再说一次,我认为安全性不如这两个答案中的选择那么重要。信息量大,而且很有帮助。因为安全提示,所以选择这个。我没想到。再说一次,我认为安全性不如我应该的那么重要rubyonrails.org的链接不再有效。@TrueSoft:谢谢,我更新了它以匹配
raw
帮助程序的当前位置。rubyonrails.org的链接不再有效。@TrueSoft:谢谢,我更新了它以匹配
raw
帮助程序的当前位置。