Chr*_*ini 1 ruby hash ruby-on-rails-3
我该怎么做:
{:foo => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)
foo是一个实际的变量,它返回123.我真正想做的是:
{:1234 => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)
你尝试过使用过:
{foo => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)
这将导致哈希元素:
{123 => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)
并且可以使用任一散列来访问123或foo.
你也可以在Ruby的哈希上玩耍:
foo = 123 # => 123
{ foo => [1,2] } # => {123=>[1, 2]}
{ :123 => [1,2] }
SyntaxError: (irb):3: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
{ :123 => [1,2] }
^
{ foo.to_sym => [1,2] }
NoMethodError: undefined method `to_sym' for 123:Fixnum
{ foo.to_s.to_sym => [1,2] } # => {:"123"=>[1, 2]}
{ :"123" => [1,2] } # => {:"123"=>[1, 2]}
Run Code Online (Sandbox Code Playgroud)