我知道有一个选项可以在ruby-on-rails中使用content_tag函数,这有助于生成一个html标记。 我工作的公司的一些铁路开发人员告诉我,这是“方便和正确”的方式,我不应该写一个“本机”html,以生成一个div例如...... 这是真的吗?它是一种铁轨标准吗?它是否与性能问题或渲染速度有关?
我附上我之前代码的代码:
<div class="alert alert-<%= key %>"><%= value %></div>
和rails功能用法
<%= content_tag(:div, value, class: "alert alert-#{key}") %>
第一个看起来漂亮,可理解和直观 - 比第二个代码更多.. 你怎么看待这个?
答案 0 :(得分:9)
当您以编程方式在ruby代码中生成HTML时,能够使用content_tag会有所帮助,例如:帮助者和演示者。
在我看来,我通常不会在项目的布局和模板中使用content_tags - 我不认为它有助于编码可读性。我认为这里的生产力或表现没有任何好处。
但是:建议:如果这是你的团队标准化的内容 - 与团队一起去。
答案 1 :(得分:2)
除了Project和Rails标准之外,安全性还是必须使用content_tag的另一个原因。
我认为content_tag更好的两个原因
Rails的查看文件是嵌入式Ruby(含义)从Ruby.Hence生成的HTML页面,content_tag等辅助方法的目的是帮助您从ERB生成HTML。
直接使用HTML(本机样式)进行硬编码时,很容易发生跨站点脚本攻击(XSS)。
答案 2 :(得分:1)
尝试为您简化HTML生成是一种帮助方法。你传递了你想要使用的东西,并为它吐出HTML。它基本上是为你构建的,虽然我从不使用它们,我宁愿自己编写,因为它只需要输入帮助方法调用就可以了:) @Jesse很好的通话,如果你的团队正在使用它,坚持与惯例