Rails 3.2.22.2アプリケーション用のRuby 2.3.3へのアップグレードをテストし、 Tempfile.new
の最初の引数として、それはハッシュとして終わります。Ruby 2.3.3:奇妙なTempfile.new([name、prefix])ベース名をハッシュに変換
私はbasename
引数が渡されている出力にtempfile.rb
をパッチしました
をirb
セッション(非Railsの)で、すべてが正常である:。rails console
セッションで
> require 'tempfile'
true
> Tempfile.new(['test', '.csv'])
["home", ".csv"] # output of basename argument for Tempfile.new
=> #<Tempfile:/var/blah/test###.csv>
:
> 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'
宝石や何かになりたいのですが、なぜこのようなことが起こっているのか、私の人生を理解することはできません。どこで、何が行動を変えているのか。
デバッグ方法に関するご意見やご提案はありますか?
パッチを当てたtempfile.rbの中に 'puts caller'の出力はありますか? –