【问题标题】:Wrapping interpolation with quotes用引号包裹插值
【发布时间】:2015-01-21 02:20:26
【问题描述】:
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

建议?

【问题讨论】:

  • 似乎是什么问题?你的代码是否抛出错误?它似乎在发挥应有的作用。
  • +1 虽然是一个非常好的问题。您提供了当前代码、预期结果,并包含了您尝试过的内容。我认为你对代码在做什么有点困惑,但你有一个格式正确的问题。
  • @CharlesCaldwell 问题是代码输出了一个反斜杠(和外部双引号)。我在某处读到反斜杠不存在,我可以理解,但不幸的是 HTML 不能。建议的文档?
  • @Anthony 不,不幸的是不会
  • 哦,问题是他使用的是p而不是puts。它的输出完全正常,但他用p 调用inspect,因此一切都被转义了。

标签: ruby loops interpolation quotes


【解决方案1】:

您看到的问题是因为您使用p 输出字符串。 p 与调用相同:

puts object.inspect

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

【讨论】:

    猜你喜欢
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多