Ruby 如何在这里使用多行字符串和使用可枚举块或循环块的插值

Ruby 如何在这里使用多行字符串和使用可枚举块或循环块的插值,ruby,Ruby,我想在Ruby中模拟使用块到多行herdoc的ERB模板的使用: 例子: 发件人: 进入: 另外,我知道我可以将整个内容移动到.erb文件中,但我更想知道是否有一种内联方式,即(对于不需要移动到单独的.erb文件中的非常短的字符串) 更新: 多亏了@AlekseiMatiushkin,我解决了语法突出显示问题,我仍然会提出这个问题,以防有人找到更简单的方法来进行循环: 之前: 之后: ^另外,我认为我必须使用不会将此标记为已解决,因为这不是我问题的直接答案,而是我问题的直接解决方案

我想在Ruby中模拟使用块到多行herdoc的ERB模板的使用:

例子: 发件人:

进入: 另外,我知道我可以将整个内容移动到
.erb
文件中,但我更想知道是否有一种内联方式,即(对于不需要移动到单独的
.erb
文件中的非常短的字符串)

更新: 多亏了@AlekseiMatiushkin,我解决了语法突出显示问题,我仍然会提出这个问题,以防有人找到更简单的方法来进行循环:

之前:

之后:


^另外,我认为我必须使用
不会将此标记为已解决,因为这不是我问题的直接答案,而是我问题的直接解决方案,因为我仍然无法在纯here doc中解决此问题,但我能够在意识到我也可以使用ERB与here doc字符串内联时解决我的问题。但是,如果这对任何人都有帮助,在这里:

require 'erb'

greetings = ['Hello World', 'Hello Earth', 'Hello Mars']

body = ERB.new(
  <<-html
  <html>
    <body>
      <ul>
        <% greetings.each do |greeting| %>
          <li><%= greeting %></li>
        <% end %>
      </ul>
    </body>
  </html>
  html
).result(binding)

puts body
#  <html>
#    <body>
#      <ul>
#        
#          <li>Hello World</li>
#        
#          <li>Hello Earth</li>
#        
#          <li>Hello Mars</li>
#        
#      </ul>
#    </body>
#  </html>
需要“erb”
问候语=['Hello World'、'Hello Earth'、'Hello Mars']
body=ERB.new(

不会将此标记为已解决,因为这不是我问题的直接答案,而是我问题的直接解决方案,因为我仍然无法在纯here doc中解决此问题,但我能够在意识到我也可以使用ERB与here doc字符串内联时解决我的问题。但是,如果这对任何人都有帮助,请参阅:

require 'erb'

greetings = ['Hello World', 'Hello Earth', 'Hello Mars']

body = ERB.new(
  <<-html
  <html>
    <body>
      <ul>
        <% greetings.each do |greeting| %>
          <li><%= greeting %></li>
        <% end %>
      </ul>
    </body>
  </html>
  html
).result(binding)

puts body
#  <html>
#    <body>
#      <ul>
#        
#          <li>Hello World</li>
#        
#          <li>Hello Earth</li>
#        
#          <li>Hello Mars</li>
#        
#      </ul>
#    </body>
#  </html>
需要“erb”
问候语=['Hello World'、'Hello Earth'、'Hello Mars']
body=ERB.new(

@AlekseiMatiushkin-ahh使用
html
(或者更具体的行话)更好吗?因为我总是对多行字符串使用
eos
)或者名称是否有实际效果或其他什么?编辑通常是这样猜测heredocs所需的语法高亮显示的。@AlekseiMatiushkin啊,我不知道!谢谢!酷!:)除了第一行
正文
,它现在看起来好多了。我会在之前和之后发布截图。谢谢!@AlekseiMatiushkin谢谢!哦,根据我上次的评论,第一行:“body”仍然破坏了语法突出显示,但只有当我使用
@AlekseiMatiushkin ahh时,使用
html
才更好(或者更具体的术语?)。因为我总是对多行字符串使用
eos
),或者名称是否有实际效果或其他什么?编辑通常都是这样猜测heredocs所需的语法高亮显示的。@AlekseiMatiushkin啊,我不知道!谢谢!酷!:)除了第一行
正文
,它现在看起来好多了。我会在之前和之后发布截图。谢谢@AlekseiMatiushkin谢谢!对了,我上一条评论的第一行:“body”仍然在破坏语法高亮显示,但只有在我使用

require 'erb'

greetings = ['Hello World', 'Hello Earth', 'Hello Mars']

body = ERB.new(
  <<-html
  <html>
    <body>
      <ul>
        <% greetings.each do |greeting| %>
          <li><%= greeting %></li>
        <% end %>
      </ul>
    </body>
  </html>
  html
).result(binding)

puts body
#  <html>
#    <body>
#      <ul>
#        
#          <li>Hello World</li>
#        
#          <li>Hello Earth</li>
#        
#          <li>Hello Mars</li>
#        
#      </ul>
#    </body>
#  </html>