两个变量之间的下划线是什么意思?
例如:{ "#{type}_#{data['blah']}" : "#{data['blahblah']}" }
答案 0 :(得分:1)
在您的情况下,它并不特定于Rails。它只是字符串连接。基本上,type = "foo"
和data['blah'] = bar
然后,你最终会得到:
{ "foo_bar" : "whatever is in the data['blahblah']" }
答案 1 :(得分:1)
Ruby的双引号string literals和symbol literals允许通过#{...}
进行插值。它像占位符一样工作。括号内给出的表达式的结果将转换为字符串并插入给定位置:
"1 + 2 = #{1 + 2}"
#=> "1 + 2 = 3"
回到你的问题:
两个变量之间的下划线是什么意思?
在字符串中,下划线是文字下划线,即_
。
您的代码使用动态创建的符号键和字符串值创建哈希:
type = 'foo'
data = { 'blah' => 'bar', 'blahblah' => 'baz' }
{ "#{type}_#{data['blah']}": "#{data['blahblah']}" }
#=> {:foo_bar=>"baz"}
您的代码中存在小错字::
不得有尾随空格。
此外,如果字符串不包含其他内容,则不需要插值。如果data['blahblah']
是一个字符串,您只需写:
{ "#{type}_#{data['blah']}": data['blahblah'] }
否则:
{ "#{type}_#{data['blah']}": data['blahblah'].to_s }