Rails 中使用的 SLIM 中的动态 class 名称
Dynamic class name in SLIM used in Rails
我正在将 SLIM 与 Rails 一起使用,并希望优化我的一个视图。
我有三个 alert 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"]
但这似乎效率很低。有什么想法吗?
编辑:
像这样的东西可以工作:
| <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......
我不使用 slim 提前道歉。但是,基于快速搜索,它似乎类似于
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"]
我正在将 SLIM 与 Rails 一起使用,并希望优化我的一个视图。
我有三个 alert 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"]
但这似乎效率很低。有什么想法吗?
编辑:
像这样的东西可以工作:
| <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......
我不使用 slim 提前道歉。但是,基于快速搜索,它似乎类似于
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"]