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