【问题标题】:How to generate <p id="r1_c1"> with ruby interpolation?如何使用 ruby​​ 插值生成 <p id="r1_c1">?
【发布时间】:2011-11-24 11:35:54
【问题描述】:

我需要使用一些 .erb 代码生成一个 html id。具体来说,我想使用矩形数组(由单元格表组成)中单元格的行和列索引。我有一个方法 cell.web_id,它构造了一个字符串:

"r#{row_index}_c#{column_index}", 

这样 cell(2,3) 就会产生

"r2_c3".  

到目前为止,一切都很好。

现在是奇怪的部分。我还没有弄清楚如何将 web_id 结果包装在正确定义属性所需的双引号中。无论我尝试什么,我总能得到:

<span class="cell" id=&quot;r1_c1&quot; >

这个表格不起作用。

那么,我怎样才能得到这个表格:

<span class="cell" id="r2_c3" >

如果你知道正确的咒语,我知道这很容易,但我没有。

【问题讨论】:

    标签: html ruby-on-rails sass erb


    【解决方案1】:

    改为双引号,为什么不试试单引号呢? (这通常是我在这种情况下所做的)。

    所以你的代码将是

    "'r#{row_index}_c#{column_index}'"
    

    您的 HTML 也需要稍微更改为单引号

    <span class='cell' id='r2_c3'; >
    

    【讨论】:

      【解决方案2】:

      试试这个:

      <span class="cell" id="<%="r#{row_index}_c#{column_index}"%>" >
      

      <span class="cell" id="r<%=row_index%>_c<%=column_index%>" >
      

      <span class="cell" id="<%=foo_span_id(row_index, column_index)%>" >
      

      foo_span_id 是一个自定义帮助方法

      【讨论】:

      • 第一个替代方案效果很好。我的问题是我没有考虑在字符串中使用 .erb 转义序列,我认为它不会正确解析。我生活和学习。谢谢。
      【解决方案3】:

      "\"r#{row_index}_c#{column_index}\"".html_safe

      (apidock docs)(大部分没用,但为了完整性而包括在内:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-21
        • 1970-01-01
        • 2012-06-03
        • 2014-06-13
        • 1970-01-01
        相关资源
        最近更新 更多