12

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

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

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

和rails函数的使用

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

第一个在我看来很漂亮,可以理解和直观 - 比第二个代码更多。你怎么看?

4

3 回答 3

10

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

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

但是:忠告:如果这是您的团队的标准 - 与团队一起去。

于 2012-07-23T14:27:31.090 回答
2

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

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

  1. Rails 的视图文件是在嵌入式 Ruby(意思是)从 Ruby 生成的 HTML 页面中。因此,像 content_tag 这样的帮助方法的目的是帮助您从 ERB 生成 HTML。

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

于 2014-08-13T06:10:39.123 回答
1

这是一种帮助您简化 HTML 生成的方法。你传入你想要使用的东西,它会为它吐出 HTML。它基本上是为你构建的,虽然我从不使用它们,但我宁愿自己写,因为它只需要输入辅助方法调用 :) @Jesse 很好的调用,如果这是你的团队正在使用的,坚持与公约

于 2012-07-23T14:42:34.863 回答