【问题标题】:Rails ERb best practices (<% %> vs <% -%> vs <%- -%>)Rails ERb 最佳实践(<% %> vs <% -%> vs <%- -%>)
【发布时间】:2023-03-04 20:32:01
【问题描述】:

当涉及到&lt;% %&gt;(评估 Ruby 代码)、&lt;% -%&gt;(评估 Ruby 代码,抑制尾随换行符)和 &lt;%- -%&gt;(评估 Ruby 代码,抑制尾随换行符和前导空格)? &lt;%- -%&gt; 似乎会使输出的 HTML 看起来最好,但 &lt;% %&gt; 似乎大部分是我看到的。

【问题讨论】:

  • 恕我直言,只要生成的 HTML 有一些可见的缩进结构,HTML 看起来有多“漂亮”并不重要,我不会为抑制换行等而烦恼。
  • 我认为 和 在 rails 3 中是同义词(没有尾随换行符)
  • 我想你是shaving yaks。编码时有很多事情需要担心,但是您发出的 HTML 是否看起来不错并不是真正重要的事情清单。但是,不要难过,因为你有很好的陪伴。我们都这样做。
  • @Greg +1 对你教我“牦牛剃须”一词的评论。
  • 哈哈。是的。得知它有一个术语,这有点令人不安。我一直以为这叫拖延。现在去观看 Ren 和 Stimpy 的节目以找到这一集。 :-)

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


【解决方案1】:

这是个人喜好。我在编写循环或块时使用 ,因为我想在那里换行。我在变量赋值的极少数情况下使用 。而且我从不使用 因为这是一个太多的选项。

【讨论】:

  • &lt;%- if foo? -&gt; 正是您想要的 Rails 生成器模板
【解决方案2】:

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

文档中的示例:

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

aaa 几乎像 HAML,不是吗? :)

【讨论】:

    【解决方案3】:

    我认为结尾的连字符 -%&gt; 不再起作用了;我在 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
    

    【讨论】:

      猜你喜欢
      • 2011-05-12
      • 1970-01-01
      • 2010-10-04
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多