用于在视图中动态添加 类 的字符串连接

String concatination for dynamically adding classes in View

我列出了用户以前使用过的送货地址 select。我正在动态添加 classes

<div class="row">
    <% @shipping_addresses.each do |address| %>
      <ul class=<%= "shipping_address_#{address.id}" %> >
        <li><%= address['name'] %> </li>
        <li><%= address['street'] %> </li>
        <li><%= address['city'] %></li> 
        <li><%= address['country'] %></li> 
        <li><%= address['zip'] %></li> 
        <li><%= address['phone'] %> </li>
      </ul>
    <% end %>
</div> <!-- row -->

问题是,现在我正在尝试将 col-lg-3 bootstrap class 添加到我的 ul`s,但当我这样写时它不起作用:

<ul class=<%= "shipping_address_#{address.id} col-lg-3" %> >

我得到这个输出:

<ul class="shipping_address_38" col-lg-3="">

我也尝试了几种不同的选择,但它们都不起作用。

有人可以帮忙吗?

谢谢

您实际输出的 html 是

<ul class=shipping_address_38 col-lg-3>

并且您的浏览器正在尽可能地解释它。模板中的引号永远不会成为实际的 html 因为它们实际上不是字符串的一部分。

你可以这样做

<ul class="<%= "shipping_address_#{address.id} col-lg-3" %>" >

尽管在我看来您现在已经过了 ERB 变得难以阅读的地步 - 您可能希望将其重构为一个帮助程序。