Rails ERb最佳实践(< %%> vs<% - %> vs<% - - %>)

时间:2010-11-08 19:29:53

标签: html ruby-on-rails ruby erb evaluate

<% %>(评估Ruby代码),<% -%>(评估Ruby代码,抑制尾随换行符)和<%- -%>(评估)时,Rails中建议使用ERb的用途是什么? Ruby代码,抑制尾随换行符和前导空格)?似乎<%- -%>会使输出HTML看起来最好,但<% %>似乎主要是我看到的。

3 个答案:

答案 0 :(得分:10)

这是个人偏好。我使用&lt; %%&gt;当我写一个循环或一个块时,因为我想要新的线条。我使用&lt;% - %&gt;在极少数情况下变量赋值。我从不使用&lt;% - - %&gt;因为这个选项太多了。

答案 1 :(得分:5)

我刚刚在http://ruby-doc.org/ruby-1.9/classes/ERB.html中读到,您甚至可以为oneliners使用单个百分号(如果该行没有其他内容)

文档示例:

<%# ignore numerous minor requests -- focus on priorities %>
% priorities.each do |priority|
  * <%= priority %>
% end

aaaalmost像HAML,不是吗? :)

答案 2 :(得分:0)

我认为结尾的连字符-%>不再起作用;我在尝试在Ruby 2.6.6中使用它时遇到了一个错误。但是,@ onetom的建议是在整个代码行中仅使用百分比%,但它不会输出任何内容,并且不会在末尾保留不需要的换行符。

示例:


连字符

line1
<%- sought = 'pattern' -%>
line3

错误消息:

file.erb:1: syntax error, unexpected ';' (SyntaxError)
; - sought = 'pattern' -; _erbout.<< "\n".freeze

没有结尾的连字符:

line1
<%- sought = 'pattern' %>
line3

输出:

line1

line3

仅百分比:

line1
% sought = 'pattern'
line3

输出:

line1
line3