我上循環的代碼塊,每次增加變量「filter_index」,從1到2,3 ...等紅寶石:字符串插值期間字符串轉換爲符號
我想使用這個變量來訪問不同的符號:
filter1_field_name, filter2_field_name, filter3_field_name
@filter1_field_name = "Region"
@filter2_field_name = "Country"
@filter3_field_name = "City"
SELECT_STATEMENT = "GROUP BY "
numberOfFilters = 3
filter_index = 1
numberOfFilters.times do #Number of iterations
filter_field_name = "@filter#{filter_index.to_s}_field_name"
SELECT_STATEMENT.sub! "GROUP BY", "AND #{filter_field_name.to_sym} GROUP BY"
filter_index += 1
end
puts SELECT_STATEMENT
這導致
和@ filter1_field_name和@ filter2_field_name和 @ filter3_field_name GROUP BY
但期望的結果是
及地區和國家及城市GROUP BY
我想知道爲什麼filter_field_name.to_sym不工作(或者說,我做錯了什麼)?
所提供的答案將做你想做的。但是,我建議你考慮將過濾器存儲在一個數組中,其中數組的第0項是第一個過濾器,第1項將是第2個過濾器,依此類推。 – BrunoFacca
'.to_s'可以作爲插值刪除('#{}')已經在隱式執行。 – cremno
@cremno - 謝謝! –