我希望有如下的哈希my_statement
:逃逸的变量(包含数组)
my_statement = %|{:foo=>\#{bar_array}}|
其中:foo
是键和值是与bar_array
以后的值来取代。之后,我以后再定义bar_array = ["a","b"]
,我做了一个eval
这句话,并希望它显示如下:
eval(my_statement)
# => {:foo=>["a", "b"]}
我需要逃跑的变量bar_array
使其评估不是当my_statement
分配,而是当eval
是呼吁它。我似乎无法获得变量的转义。我试过\#
,#
,\\#
。
为什么我这样做的背景: 我有几个静态定义的图表支持SOLR查询。我采取了在数据库中的可序列化列中定义这些查询的方法(他们再次“从不”更改)。实际上有两个级别的查询;第一级为该查询获取“全部”数据;以及基于用户从第一查询中选择一些数据(离开图表)的第二级别 - 即,我需要一个变量作为第二查询的一部分。有时(如本例中)变量将包含一个数组。
什么是最终的目的是什么?除非你可以显示明确要求'eval'的理由,否则这是不可能的推荐方法。 – 2013-05-06 16:47:20
好点 - 更新我原来的问题。 – 2013-05-06 17:27:15