1
我想重現一個當我從ActiveRecord獲取記錄但類(activeRecord類,而不是實例)不在內存中時發生的錯誤,然後重新加載activeRecord類模型。我沒有發現這個bug,因爲類對象似乎在內存中保留了很長時間。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
不幸的是,類對象獲取Account類的同一個對象的時候比它創建的時候要多。有沒有辦法強制這個類被重新加載?
我知道錯誤在哪裏,我只是想重現它。那麼有沒有辦法卸載這個類?