如何在Ruby ERB模板中给HTML内容添加class为money的span标签
正确实现方法
错误原因分析
你之前的写法混淆了ERB普通变量输出和Rails标签辅助方法的语法规则:
- 直接在ERB输出标签内写
:span符号无法生成对应的HTML标签 - 缺少辅助方法的参数分隔规则,语法结构错误
两种可行实现方案
方案1:直接手写HTML标签(最直观,推荐新手使用)
不需要调用Ruby辅助方法,直接把价格包裹在静态span标签内即可:
<li class="list-group-item cart-text-drawer shipping-results border-0"><%= rates[i].name %> at <span class="money"><%= rates[i].price %></span></li>
方案2:使用Rails content_tag辅助方法(适合动态属性场景)
如果后续需要给span标签动态修改类名、添加其他属性,可以用Rails内置的content_tag方法生成标签:
<li class="list-group-item cart-text-drawer shipping-results border-0"><%= rates[i].name %> at <%= content_tag :span, rates[i].price, class: 'money' %></li>
content_tag的三个参数依次为:标签名、标签内部展示的内容、标签的属性哈希。
内容的提问来源于stack exchange,提问作者Whiley Mai
相关产品推荐
相关产品推荐

