Rails 有条件地应用 class Slim 的未决答案

Rails conditionally apply class pending answer with Slim

我从来没有对 class 进行过有条件的应用,所以我有点不知所措。

- if @something.elses.all.count > 5
 .this-client
  - @something.elses.all.each do |thing|
   = image_tag thing.photo, class: 'align-middle'
- else
 .this-other-client
  - @something.elses.all.each do |thing|
   = image_tag thing.photo, class: 'align-middle'

RuboCop 真的很讨厌我在两种情况下都有相同的东西,我明白了。那么如何根据结果应用条件 class 呢?

你可以这样做:

div class=(@something.elses.all.count > 5 ? 'this-client' : 'this-other-client')
  - @something.elses.all.each do |thing|
   = image_tag thing.photo, class: 'align-middle'

此外,Rails 不像在视图中那样执行查询。如果有另一种方法来获得该计数,您应该研究一下