$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

rubyでTypeError: singleton can't be dumped と言われたとき

 ちょっとはまったのでメモ。キャッシュなどを行なうときに、上のように言われることがあります。これはsingletonオブジェクトであるとか、特異メソッドがあるためのようなので、dupメソッドを使って浅いコピーをすることでdumpできるようにすることができます。

user = Twitter.user('shiba_yu36')
Rails.cache.write('user_cache', user.dup)