Rails中使用的SLIM中的动态类名

问题描述 投票:0回答:1

我正在使用SLIM和Rails,并希望优化我的一个观点。

我有三个警报SCSS类:

alert-notice
alert-success
alert-danger

值:alert-type作为字符串传递给视图,具有以下可能性:

notice
success
danger

我可以编写一个复杂的代码片段,如下所示:

- if alert-type == 'notice'
    .alert.alert-notice[role="alert"]
      button.close[type="button" data-dismiss="alert" aria-hidden="true"]
  elsif alert-type == 'success'
    .alert.alert-success[role="alert"]
      button.close[type="button" data-dismiss="alert" aria-hidden="true"]
  else
     .alert.alert-danger[role="alert"]
       button.close[type="button" data-dismiss="alert" aria-hidden="true"]

但这似乎效率很低。有任何想法吗?

EDIT:

像这样的东西,会起作用:

|  <div class="alert alert-
= name.to_s == 'notice' ? 'success' : 'danger'
| " role="alert"> 
button.close[type="button" data-dismiss="alert" aria-hidden="true"]
  | ×

但是这段代码有点难看,并且想知道我是否可以使用简化的SLIM语法:.alert.alert ......

ruby-on-rails slim
1个回答
3
投票

我会事先道歉,我不会使用苗条。但是,基于快速搜索,它似乎就像是

div role = "alert" class = "alert alert-#{alert-type}"
  button.close[type="button" data-dismiss="alert" aria-hidden="true"]

看起来你应该能做到:

.alert[role = "alert" class = "alert-#{alert-type}"]
  button.close[type="button" data-dismiss="alert" aria-hidden="true"]
© www.soinside.com 2019 - 2024. All rights reserved.