Ruby の Twitter の gem にて、凍結ユーザの 'name' は Twitter::NullObject で返ってくる

gyazo.com

結論

標題の通りなので、たとえばデータベースにユーザデータを格納しようとする際に nameNOT NULL 制約をかけていたりバリデーションをかけていたりすると、エラーになります。

対処法の一つとしては Twitter::NullObject のときは例外として特定の文字列に置き換えることでしょうか。ただし注意することがあり、このオブジェクトは以下のような評価になるということです。ここで objTwitter::NullObject のオブジェクトとします。

obj.nil? #=> true
obj == true #=> false
obj == false #=> false
obj || 'hoge' #=>(空っぽ。何も表示されない)
(obj || 'hoge').class #=> Twitter::NullObject

obj || 'hoge'hoge が返ってこないことには注意が必要です。

Powered by はてなブログ