2012-07-23 75 views
7

我知道有一个选项可以在ruby-on-rails中使用content_tag函数,这有助于生成html标记。 我所在公司的一些Rails开发人员告诉我,这是“方便且正确”的方式,我不应该写一个“native”html来生成一个div例如... 这是真的吗?这是一种轨道标准吗?它是否与性能问题或提高速度有关?为什么我应该使用content_tag而不是“常规”html?

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

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

和轨函数的用法

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

第一个在我看来非常易懂,直观的 - 比第二码更多.. 您对此有何看法?

回答

8

能够使用content_tag有助于以编程方式在ruby代码中生成HTML,例如helpers和presenters。

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

然而:建议的意思:如果这就是你的团队已经标准化的东西 - 与团队一起去。

+0

感谢您澄清事情,我知道我应该和我的(临时)团队一起去谈标准。我只是想知道我对这位助手的解释是真实的还是只是标准和习惯问题...... – benams 2012-07-23 14:33:34

1

这是一种帮助您简化HTML生成的方法。你传入你想要使用的东西,并为它吐出HTML。它基本上是为你建立的,尽管我从来没有使用它们,我宁愿写我自己的,因为它只需要输入助手方法调用即可。@Jesse很好的调用,如果这是你的团队使用的,与公约

1

除了项目和Rails标准,安全性是为什么必须使用content_tag的另一个原因。

两个快速的原因,我觉得content_tag更好

  1. 观的Rails的文件是嵌入的Ruby(意)HTML从Ruby.Hence生成的页面,就像content_tag helper方法提供的帮助你的目的从ERB生成HTML。

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