my_statement私は以下のようにハッシュしたい:
my_statement = %|{:foo=>\#{bar_array}}|
where:fooはキーで、値はbar_array後の値に置き換えられます。後で を定義bar_array = ["a","b"]した後、このステートメントを実行しeval、次のように表示します。
eval(my_statement)
# => {:foo=>["a", "b"]}
が割り当てられたときではなく、呼び出されたbar_arrayときに評価されるように、変数をエスケープする必要があります。変数のエスケープを取得できないようです。私は試しました、、。my_statementeval\##\\#
私がこれを行う理由の背景: SOLR クエリに基づく静的に定義されたグラフがいくつかあります。私は、これらのクエリをデータベースのシリアル化可能な列に定義するというアプローチを取りました (これも「決して」変更されません)。実際には、クエリには 2 つのレベルがあります。そのクエリの「すべて」のデータを取得する最初のレベル。2 番目のレベルは、ユーザーが最初のクエリから (グラフから) データを選択することに基づいています。つまり、2 番目のクエリの一部となる変数が必要です。場合によっては (この例のように) 変数に配列が含まれることがあります。