Ruby 如何';内插';以';开头的字符串变量:';在'之后&';在scss.erb文件中

Ruby 如何';内插';以';开头的字符串变量:';在'之后&';在scss.erb文件中,ruby,sass,erb,Ruby,Sass,Erb,在scss.erb文件中,我试图向mixin添加一个变量,该变量允许修改子样式的上下文。虽然我使用的语法直接在SCS中工作,但ruby似乎在干扰,因为&:有特定的含义。例如,在scss.erb文件中: @mixin test($pseudo: ":before") { color: #F00; &#{$pseudo} { content: 'x'; } } 稍后,在正常SCS中: .my-element { // after pseudo element

在scss.erb文件中,我试图向mixin添加一个变量,该变量允许修改子样式的上下文。虽然我使用的语法直接在SCS中工作,但ruby似乎在干扰,因为
&:
有特定的含义。例如,在scss.erb文件中:

@mixin test($pseudo: ":before") {
    color: #F00;

    &#{$pseudo} { content: 'x'; }
}
稍后,在正常SCS中:

.my-element {
    // after pseudo element
    @include test($pseudo: ":after");
}

.my-element {
    // self
    @include test($pseudo: "");
}
结果在“&{$pseudo”:预期“:”之后出现错误
无效CSS,即“}{conte…”

此处的实际上下文:)


想法?我假设有一个转义序列可以用于此,但Ruby不是我的母语。

您可以将其包装在ERB标记中,如下所示:

...
<%= "&" %>#{$pseudo} { content: 'x'; }
...
。。。
#{$pseudo}{content:'x';}
...
有点乱,但那样的话,它被认为是一根绳子