通过Hartl的Rails教程,他提到了:
stylesheet_link_tag "application", { media: "all",
"data-turbolinks-track" => true }
有效
stylesheet_link_tag "application", { media: "all",
data-turbolinks-track: true }
无效,因为"因连字符而无效。"任何人都能为我进一步解释这个吗?为什么连字符使这个无效?
答案 0 :(得分:1)
冒号哈希语法不支持所有符号。有时您必须使用hashrockets。看看here。
foo: true
归结为:foo => true
。在符号中,必须像以下那样对短划线进行转义::'foo-bar'
。 foo-bar: true
无效,因为:foo-bar => true
也不是。
答案 1 :(得分:0)
这是因为连字符可以解释为减号,这就是变量名不能包含连字符的原因。我想你可以这样做::'data-turbolinks-track' =>
我知道如果你想把奇怪的字符放在符号中,你可以这样做::'a-symbol^with#weird+:symbols'
。这基本上意味着在字符串中包装符号,除了':'当把不寻常的字符放在其中时。