gpt4 book ai didi

ruby-on-rails - 有条件地向元素添加多个类

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:29 25 4
gpt4 key购买 nike

假设我有一些@stuff,我正在渲染一个表格,其中包含关于每个thing 的一些属性。我希望每一行的颜色都不同,所以我使用了典型的 cycle 技巧:

%table
- @stuff.each do |thing|
%tr{ class: cycle('even', 'odd') }
%td thing.bleep
%td thing.bloop

但我还想根据与每个特定 thing 相关的某些条件以不同方式呈现某些行。因此,如果 thing.foo? 为真,我希望某些行具有 foo 类。如果我不做 cycle 事情,我会做:

%tr{ class: 'foo' if thing.foo? }

是否有一种方便的方式来完成这两件事?或者我真的必须手写丑陋的逻辑来有条件地将这些东西附加在一起并在它们之间留一个空格吗?感觉那种乏味的逻辑很容易出错,而且我应该使用一个抽象来组合这两个 CSS 类更改。

最佳答案

您可以 use an array for class and id attributes :

The :class and :id attributes can also be specified as a Ruby array whose elements will be joined together. A :class array is joined with " " and an :id array is joined with "_".

所以在这种情况下你可以这样做:

%tr{:class => [cycle('even', 'odd'), ('foo' if thing.foo?)]}

任何 nil 都会从数组中删除,这样您就不会得到额外的空格

关于ruby-on-rails - 有条件地向元素添加多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21174195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com