ERB的替代方案

时间:2010-12-27 22:07:57

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

我对RoR开发的重视程度越来越高。 ERB对我不太合适。我之前用JSP做了一次。即使逻辑是特定于视图的,在我的标记中嵌入Ruby代码也不会是一个好的计划。也许我的恐惧是没有根据的,但感觉很危险。另外,还有很多打字。

我找到了HAML,我正在给它一些评价。如果它是一个很好的选择,也许你可以为它提供一些好的资源。

除了HAML之外,Rails View层还有其他ERB替代方案吗?

我对ERB的担忧是否不合理?

4 个答案:

答案 0 :(得分:12)

模板中的嵌入式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会丢弃所有end s。

答案 1 :(得分:7)

如果你在观点中不喜欢Ruby,HAML不会帮助你。虽然在语法上更多的是succint,但它使用嵌入式Ruby就像ERB一样。

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

答案 2 :(得分:4)

您可以查看Erector以获得更抽象的观看方式:

http://erector.rubyforge.org/

答案 3 :(得分:0)

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

无论如何,我正在研究两种你可能感兴趣的模板语言:

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