在为Rails应用程序编写一些HAML时,我尝试使用:javascript过滤器将一些内联javascript嵌入到文档中。每当我尝试加载页面时,Rails就会抱怨Invalid filter name ":javascript".
我想要包含的代码如下:
:javascript
$(document).ready(function() {
$('#variants').editableTableWidget();
});
为什么rails抱怨?
答案 0 :(得分:2)
您似乎在代码中有一个额外的字符“soft hyphen” (U+00AD),位于“{javascript”的s
和c
之间。它不会显示在HTML中,但复制代码并粘贴到终端以运行它会显示额外的字符,错误消息显示为
Invalid filter name ":javas-cript".
(这里我用普通的连字符替换了软连字符,以便它显示在HTML中)
它可能不会显示在您的编辑器中,但如果您将光标放在一个字符上,您可能会注意到s
和c
之间需要额外按键。 / p>
要解决此问题,只需删除此额外字符即可。如果您找不到或不确定,请删除整个javascript
并重新输入。