【问题标题】:why should I use content_tag instead of "regular" html?为什么我应该使用 content_tag 而不是“常规”html?
【发布时间】:2012-07-23 14:06:59
【问题描述】:

我知道在 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}") %>

在我看来,第一个代码很漂亮、易于理解和直观 - 比第二个代码要多.. 你怎么看?

【问题讨论】:

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


    【解决方案1】:

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

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

    但是:忠告:如果这是您的团队已标准化的内容,请与团队合作。

    【讨论】:

    • 感谢您让事情变得清晰..,我知道在标准方面我应该和我的(临时)团队一起去。我只是想知道我得到的关于这个助手的解释是真实的还是只是标准和习惯的问题......
    【解决方案2】:

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

    我觉得 content_tag 更好的两个原因

    1. Rails 的查看文件在 Embedded Ruby(意思是)从 Ruby 生成的 HTML 页面中。因此,像 content_tag 这样的辅助方法的目的是帮助您从 ERB 生成 HTML。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2014-05-21
        • 2016-05-23
        • 1970-01-01
        • 2018-05-10
        • 2014-03-12
        • 2012-12-13
        • 2013-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多