在ERB表单生成器中转义

时间:2015-10-27 01:49:08

标签: ruby escaping sinatra erb

我试图遍历一个数组,其中每个条目将在ERB中创建的表单中创建输入字段。我已经为这个数组中的每个新条目设置了一个@loopcount整数。我想在字段名中使用增加的整数:

Item <input name="s_fieldname_<%= @loopcount %>" id="s_fieldname_<%= @loopcount %>" type="text" value="<%= field[0] %>" size="12"><br/>

因为在双引号内,所以@loopcount没有。我猜这是一个逃避某种问题。 %% 不工作。

编辑:添加语法

    <% @fields.each do |field| %>
        <span class="red"><%= field[0] %></span> - <%= field[1] %><br>
        <strong>fieldname</strong> <input name="s_fieldname_#{@loopcount}" type="text" value="<%= field[0] %>" size="12"><br/>
        <strong>show</strong> <input name="s_show_#{@loopcount}" type="checkbox" checked><br/>
        <strong>required</strong> <input name="s_required_#{@loopcount}" type="checkbox"><br/>
        <strong>description</strong> <input name="s_description_#{@loopcount}" type="text" value="" size="60"><br/>
        <% @loopcount += 1 %>
    <% end %>

我是如何实现这一目标的?干杯

1 个答案:

答案 0 :(得分:0)

好吧,我不知道这是怎么发生的,但第一种语法现在适用于替换。

...name="s_fieldname_<%= @loopcount %>" type="text" value="<%= field[0] %>"...

我正在使用Chrome,但Safari也显示了相同的语法结果。