为什么我应该使用content_tag而不是“常规”html?

时间:2012-07-23 14:06:59

标签: html ruby-on-rails ruby-on-rails-3

我知道有一个选项可以在ruby-on-rails中使用content_tag函数,这有助于生成一个html标记。 我工作的公司的一些铁路开发人员告诉我,这是“方便和正确”的方式,我不应该写一个“本机”html,以生成一个div例如...... 这是真的吗?它是一种铁轨标准吗?它是否与性能问题或渲染速度有关?

我附上我之前代码的代码:

<div class="alert alert-<%= key %>"><%= value %></div>  

和rails功能用法

<%= content_tag(:div, value, class: "alert alert-#{key}") %>

第一个看起来漂亮,可理解和直观 - 比第二个代码更多.. 你怎么看待这个?

3 个答案:

答案 0 :(得分:9)

当您以编程方式在ruby代码中生成HTML时,能够使用content_tag会有所帮助,例如:帮助者和演示者。

在我看来,我通常不会在项目的布局和模板中使用content_tags - 我不认为它有助于编码可读性。我认为这里的生产力或表现没有任何好处。

但是:建议:如果这是你的团队标准化的内容 - 与团队一起去。

答案 1 :(得分:2)

除了Project和Rails标准之外,安全性还是必须使用content_tag的另一个原因。

我认为content_tag更好的两个原因

  1. Rails的查看文件是嵌入式Ruby(含义)从Ruby.Hence生成的HTML页面,content_tag等辅助方法的目的是帮助您从ERB生成HTML。

  2. 直接使用HTML(本机样式)进行硬编码时,很容易发生跨站点脚本攻击(XSS)。

答案 2 :(得分:1)

尝试为您简化HTML生成是一种帮助方法。你传递了你想要使用的东西,并为它吐出HTML。它基本上是为你构建的,虽然我从不使用它们,我宁愿自己编写,因为它只需要输入帮助方法调用就可以了:) @Jesse很好的通话,如果你的团队正在使用它,坚持与惯例