繁体   English   中英

如何在带有空格的 HTML 标记中编写内联 Ruby on Rails 三元运算符?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM