我希望有如下的哈希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