【问题标题】:Alternatives to ERBERB 的替代品
【发布时间】:2011-05-31 08:10:19
【问题描述】:

我越来越投入到 RoR 开发中。 ERB 对我来说不太合适。我以前用 JSP 做过一次。即使逻辑是特定于视图的,在我的标记中嵌入 Ruby 代码也不是一个好的计划。也许我的恐惧是没有根据的,但感觉很危险。此外,还涉及大量打字。

我找到了 HAML,我正在对其进行更多评估。如果它是一个不错的选择,也许您可​​以为此提供一些好的资源。

除了 HAML,Rails 视图层还有哪些 ERB 替代方案?

我对 ERB 的担心是不合理的吗?

【问题讨论】:

    标签: ruby-on-rails view ruby-on-rails-3 haml erb


    【解决方案1】:

    在模板中嵌入 Ruby 代码不是问题。它提供了 Erb 和 Haml 作为模板语言的强大功能。事实上,许多模板语言都受到影响,因为模板没有代码(例如,Django 的模板语言)。

    有时会发生的真正问题是,当开发人员将复杂代码、代码拉取数据、代码更新数据或代码制定决策粘贴到模板中时。

    Ruby 和 Rails 为开发人员提供了强大的功能和灵活性。负责是开发商的责任。从控制器中检索您的数据。将复杂代码移动到帮助程序中。等等。

    <%= link_to edit_post_path(@post) do %>
      Edit post "<%= @post.title %>"!!!
    <% end %>
    

    以上是简单的嵌入式 Ruby,可以很好地展示在视图中。 Haml 版本是:

    = link_to edit_post_path(@post) do
      Edit post "#{@post.title}"!!!
    

    只要您保持代码简单,并将任何复杂的代码移到控制器或助手中,就可以了。

    请注意,Haml 和 Erb 模板包含相同数量的嵌入式 Ruby 代码,但 Haml 会丢弃所有 ends 的例外情况。

    【讨论】:

    • 嘿,整洁!过去,行必须以 == 开头才能进行插值,但现在情况似乎不再如此。直到! :D
    【解决方案2】:

    如果您不喜欢 Ruby,HAML 不会帮助您。虽然语法更简洁,但它使用嵌入式 Ruby,就像 ERB 一样。

    如果您想完全避免视图中的逻辑,请查看Mustache 之类的内容。它使用一种模板风格,强调更严格的逻辑与表示分离(无逻辑视图)。

    【讨论】:

      【解决方案3】:

      您可以查看 Erector 以获得更抽象的视图处理方式:

      http://erector.rubyforge.org/

      【讨论】:

        【解决方案4】:

        我和你一样,在使用 Java 服务了一段时间后,将来到 Rails(和 Ruby)。当我看到 ERB 时,我有一种发自内心的反应,回想起在我发现 Velocity 和 Freemarker 之前 JSP 的糟糕时光。

        无论如何,我正在寻找您可能感兴趣的两种模板语言:

        如果您对 Handlerbars 感兴趣,还请查看 Handlerbars.rb。至少还有一个同名的项目,但这个不是 Handlerbars 的 Ruby 端口,而是 Handlerbars.js 的 Ruby 包装器。所以它是“真正的 Handlerbars”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-14
          • 2010-11-08
          • 2012-01-25
          • 2015-08-05
          • 2011-01-01
          相关资源
          最近更新 更多