[英]How do you write inline Ruby on Rails ternary operators in an HTML tag with white space?
我目前遇到了一个问题,我试图通过使用三元运算符使 li 标签具有基于 Ruby 变量的特定类:
<li class=<%= loc == @ruby_var ? "nav-item active" : "nav-item" %>>
...
</li>
如果@ruby_var 为真,我希望结果是具有导航项和活动类的 li 元素:
<li class="nav-item active">
...
</li>
但是,由于某种原因,我得到了意想不到的结果,它只将类设置为三元运算符中字符串的第一部分,而将第二部分留在类标记之外:
<li class="nav-item" active>
...
</li>
我曾尝试在“nav-item active”字符串中使用多个空格,但任何空格似乎都使类只接受字符串中的第一个元素。
使用三元运算符设置 HTML 标签类的正确方法是什么?
你可以这样写
<li class="<%= loc == @ruby_var ? "nav-item active" : "nav-item" %>">
# ...
</li>
请注意, "
雇员再培训局表达之外。
或者你可以像这样使用标签助手
<%= tag.li, class: ["nav-item", (:active if loc == @ruby_var)] do %>
# ...
<% end %>
我更喜欢第二个选项,因为我不喜欢在描述标签时混合 HTML 和 ERB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.