读取字符串作为变量RUBY

时间:2013-08-26 15:22:16

标签: ruby csv

我从CSV文件中提取以下字符串,从单元格A1中提取,并将其存储为变量:

#{collector_id}

因此,单元格A1读取#{collector_id},我的代码基本上是这样做的:

test = #excel_cell_A1

但是,如果我这样做:

puts test

我明白了:

#{collector_id}

我需要#{collector_id}作为实际变量collector_id读取,而不是我用来调用变量的代码。这可能吗?

感谢您的帮助。我使用的是ruby 1.9.3。

2 个答案:

答案 0 :(得分:1)

您可以使用subgsub替换预期的输入值:

collector_id = "foo"
test = '#{collector_id}'
test.sub("\#{collector_id}", "#{collector_id}") #=> "foo"

我会避免使用eval(或至少完整性检查您正在运行的内容),以降低运行从CSV文件中收到的任意代码的风险。

答案 1 :(得分:0)

试试这个:

test_to_s = eval("\"#{ test }\"")
puts test_to_s

%q["#{ test }"]将构建字符串"#{collector_id}"(双引号是字符串的一部分,"#{collector_id}".length == 17),然后将eval