測試升級到Ruby 2.3.3我們的Rails應用3.2.22.2,並獲得在那裏我們傳遞一個數組一個奇怪的局面:作爲Tempfile.new
的第一個參數,但它最終會成爲一個散列。紅寶石2.3.3:奇怪Tempfile.new([名稱,前綴])基本名稱轉換爲哈希
我修補tempfile.rb
輸出在傳遞basename
參數
在irb
會話(非Rails的),一切都很好。
> require 'tempfile'
true
> Tempfile.new(['test', '.csv'])
["home", ".csv"] # output of basename argument for Tempfile.new
=> #<Tempfile:/var/blah/test###.csv>
在rails console
會話:
> Tempfile.new(['test', '.csv'])
{"test"=>nil, ".csv"=>nil}
ArgumentError: unexpected prefix: {"test"=>nil, ".csv"=>nil}
from /path/to/ruby-2.3.3/lib/ruby/2.3.0/tmpdir.rb:113:in `make_tmpname'
得是一個寶石或東西,但無法弄清楚了我的生活,爲什麼這種情況正在發生或在哪裏或什麼在改變行爲。
如何調試任何意見或建議?
「put caller」的輸出在修補過的tempfile.rb中的輸出是什麼? –