用引号包装插值

Wrapping interpolation with quotes

range_array = (0..100).to_a
range_array.each do |number|
  p %-<div class="#{number}"><h1>Dell Shitbox</h1></div>-
end

结果:

"<div class=\"83\"><h1>Dell Shitbox</h1></div>"

想要的结果:

<div class="83"><h1>Dell Shitbox</h1></div>

我尝试过转义:

range_array = (0..100).to_a
range_array.each do |class|
  p %-<div class=\"#{class}\"><h1>Dell Shitbox</h1></div>-
end

我试过切换引用方式(很多很多次)

range_array = (0..100).to_a
range_array.each do |class|
  p %Q[<div class="#{class}"><h1>Dell Shitbox</h1></div>]
end

建议?

您看到的问题是因为您正在使用 p 输出字符串。 p 等同于调用:

puts object.inspect

简单的解决方法是使用 puts 而不是 p