使用以下代码,我希望看到'test-keyword'
,但我不会:
line_item = "\#{item[‘value’][‘keyword’]}"
item['value'] # => {..., "keyword"=>"test-keyword", ...}
String.interpolate {line_item} # => NameError: undefined local variable or method `‘value’'
但是,如果我更改line_item
的值,插值,然后更改回来,我会得到不同的结果:
line_item = "\#{item['value']}"
String.interpolate {line_item}
# => "{\"bot_client_id\"=>\"aiaas-1409611358153-user-0012\", \"recurring\"=>true, \"recurring_natural_language\"=>\"every day\", \"time_string\"=>\"9:16am\", \"ti_Angeles\", \"via\"=>\"sms\", \"keyword\"=>\"test-keyword\", \"status\"=>\"active\", \"created_time\"=>1453620894000, \"process\"=>\"unstarted\"}"
在上文中,interpolate
只需更改line_item
即可成功运作。然而,
line_item = "\#{item['value']['keyword']}"
String.interpolate {line_item} # => "test-keyword"
现在它有效。在第一遍中,item['value']['keyword']
失败;第二次,它有效。
我的预期行为是让它第二次运行,但我一直在使用未定义的局部变量。我需要做什么?
答案 0 :(得分:0)
将’
中的引号"\#{item[‘value’][‘keyword’]}"
更改为'
。