2016-08-11 6 views
0

私はルビーとシェフを初めて迎えました。私の料理本に属性を定義するときに構文上の問題が発生しています。Rubyの構文、記号で数字を使用していますか?

default[:my_cookbook][:stuff] = { 
:foo_bar => { 
:grok => ['Hi'], 
:2grok => ['Bye'], 
... 

私が.. 2grokを開始するために番号を使用することはできません表示され、これを脱出する方法はありますか、何が「2grok」を使用するための適切な構文のようになります。以下は、関連するコードはありますか?

答えて

5

あなたは数字と記号を開始したい場合は、引用符で囲む必要があります。

:'2grok' => ['Hi'] 

あなたは二重引用符を使用する場合は、ルビー内部interpolates文字列:

:"#{1 + 1}grok" 

また、 percent-notation

%s{2grok} 

最後に、次の記号を使用できます。

'2grok'.to_sym => ['Hi'] 
2

ムラデンの答えは、ルビーの用語で正しいです:文字列のto_symメソッドを呼び出します。シンボル名の先頭にある数字は、引用符でのみ使用できます。ハッシュからも値にアクセスするためにそれらを使用する必要があることに注意してください。しかし、は、は、あなたの料理本の属性を定義するための記号を使用すべきではありません。 Chef Style Guide recommends using strings instead

関連する問題