ActiveRecordからレコードを取得してもクラス(インスタンスではなくactiveRecordクラス)がメモリにない場合に発生するバグを再現しようとしています。次に、activeRecordクラスモデルがリロードされます。クラスオブジェクトがかなりの間メモリに残っているようだから、私はバグを捕まえなかった。Rubyクラスのオブジェクト強制リロード
def test_decryption_should_work_at_any_time
require 'pry'
binding.pry
account = Account.last
require 'pry'
binding.pry
end
を見て、あなたはアカウントは、私がしようとするものに関係なく、同じオブジェクトではありません表示されます:ここで
はテストです102: f = Account.create!(:key => "secret", :password => "password")
=>103: binding.pry
104: account = Account.last
105: binding.pry
106: end
107: end
[1] pry(#<ActiveRecordTest>)> f.class.object_id
=> 70278442281960
は、次にオブジェクトをリロード
104: account = Account.last
=>105: binding.pry
106: end
107: end
[1] pry(#<ActiveRecordTest>)> account.class.object_id
=> 70278442281960
残念ながら、クラスオブジェクトが作成されたときと同じクラスオブジェクトがアカウントクラスに対して取得されています。このクラスを強制的にリロードする方法はありますか?
私はバグの場所を知っています。私はそれを再現しようとしています。そのクラスをアンロードする方法はありますか?