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_statement
eval
\#
#
\\#
私がこれを行う理由の背景: SOLR クエリに基づく静的に定義されたグラフがいくつかあります。私は、これらのクエリをデータベースのシリアル化可能な列に定義するというアプローチを取りました (これも「決して」変更されません)。実際には、クエリには 2 つのレベルがあります。そのクエリの「すべて」のデータを取得する最初のレベル。2 番目のレベルは、ユーザーが最初のクエリから (グラフから) データを選択することに基づいています。つまり、2 番目のクエリの一部となる変数が必要です。場合によっては (この例のように) 変数に配列が含まれることがあります。