我想要一个哈希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 查询支持的静态定义图表。我采用了在数据库的可序列化列中定义这些查询的方法(同样,它们“从不”改变)。实际上有两个级别的查询;为该查询获取“所有”数据的第一级;第二个级别是基于用户从第一个查询中选择一些数据(图表之外) - 即,我需要一个变量作为第二个查询的一部分。有时(如本例中)变量将包含一个数组。