0

Ruby の専門家に説明を求めたいと思います。

のようなものは使用できません"foo-bar": trueが、foobar: true機能します。誰かがこれに気づきましたか?

これは機能します:

新しい Ruby 構文では、このハッシュ ロケットを置き換えることができます。

<%= f.submit "Save", :class => "btn" %>
                     ^-------------^

これとともに

<%= f.submit "Save", class: "btn" %>
                     ^----------^

これはしません:

では、2 つの単語からなる記号はどうでしょうか。これは機能しません - 構文エラーです!

<%= f.submit "Save", "data-disable-with": "Saving..." %>
                     ^------------------------------^
4

2 に答える 2

4

JSON スタイルのHash構文は、キーが有効な Ruby 識別子である s であるHashes用です。SymbolあなたのキーはSymbol(それはString) でも有効な Ruby 識別子でもありません (Ruby 識別子にハイフンを含めることはできません。ハイフンは二項中置-演算子とあいまいさを生み出すためです: はa-b識別子を意味するのでしょうか、それとも「からのa-b減算 」、つまり? を意味するのでしょうか?)baa.-(b)

于 2013-11-06T21:03:02.147 に答える
-1

キーを記号ではなく文字列として設定しようとしています。

于 2013-11-06T20:52:25.343 に答える