在 Slim 的 HTML 属性中嵌入 Ruby 代码

Embed Ruby code within Slim's HTML attribute

我正在尝试使用可爱的 Slim 模板语言生成一系列具有随机完成宽度的进度条。

这是我想要生成的代码:

.progress-info
  .progress
    span.progress-bar.progress-bar-success data-toggle='tooltip' style="width: 20%;"

但是我想随机生成样式的宽度,例如:

.progress-info
  .progress
    span.progress-bar.progress-bar-success data-toggle='tooltip' style="width: #{rand(50)+'%'};"

当然这个不行,只是给个思路。

您的问题出在 rand(50)+'%' – 您正在尝试将字符串 ('%') 添加到 Fixnum(rand 的结果)。

您可以通过调用 to_s:

来修复它
span.progress-bar.progress-bar-success data-toggle='tooltip' style="width: #{rand(50).to_s + '%'};"

或更简单地仅在插值中包含对 rand 的调用:

span.progress-bar.progress-bar-success data-toggle='tooltip' style="width: #{rand(50)}%;"