Dre*_*rew 8 haml ruby-on-rails erb view ruby-on-rails-3
我对RoR开发的重视程度越来越高.ERB对我不太合适.我之前用JSP做了一次.即使逻辑是特定于视图的,在我的标记中嵌入Ruby代码也不会是一个好的计划.也许我的恐惧是没有根据的,但感觉很危险.另外,还有很多打字.
我找到了HAML,我正在给它一些评价.如果它是一个很好的选择,也许你可以为它提供一些好的资源.
除了HAML之外,Rails View层还有其他ERB替代方案吗?
我对ERB的担忧是否不合理?
yfe*_*lum 12
模板中的嵌入式Ruby代码不是问题.它提供Erb和Haml作为模板语言的巨大力量.实际上,许多模板语言都会受到影响,因为模板没有代码(例如,Django的模板语言).
有时会发生的真正问题是开发人员将复杂的代码或代码提取数据,或代码更新数据或代码制定决策放入模板中.
Ruby和Rails为开发人员提供了巨大的功能和灵活性.开发人员有责任负责.从控制器中检索数据.将复杂的代码移动到帮助器中.等等.
<%= link_to edit_post_path(@post) do %>
Edit post "<%= @post.title %>"!!!
<% end %>
Run Code Online (Sandbox Code Playgroud)
以上是简单的嵌入式Ruby,并且在视图中很好地存在.Haml版本是:
= link_to edit_post_path(@post) do
Edit post "#{@post.title}"!!!
Run Code Online (Sandbox Code Playgroud)
只要你保持代码简单,并将任何复杂的代码移动到控制器或帮助器中,你就可以了.
请注意,Haml和Erb模板包含等量的嵌入式Ruby代码,但Haml丢弃了所有ends.
如果你在观点中不喜欢Ruby,那么HAML不会帮助你.虽然在语法上更多的是succint,但它使用嵌入式Ruby就像ERB一样.
如果您想完全避免视图中的逻辑,请查看像Mustache这样的内容.它使用模板风格,强调逻辑与表示(无逻辑视图)的更严格分离.