「独習Rails」の7.3タイプオブジェクト学習中に発生したエラー。
コンソール上での (Object doesn’t support #inspect) というメッセージが表示されました。
エラー発生状況、エラー原因、対策を備忘録としてまとめます。
エラー発生状況
#コンソール入力
irb(main):001:0> Weather.new(today_temp: '100F')
#エラーメッセージ
(Object doesn't support #inspect)
原因
ザ・誤字
class TemperatureType < ActiveRecord::Type::Integer
def cast(temperature)
temp = temperature.split('F')
if !/\D/.match?(temp[0]) && temp.length < 2
degee = temp[0].to_f
super(degree = (degree - 32) / 1.8)
else
super
end
end
end

もふぃ
6行目。
degreeがdegeeになっとるやないかい!!
しかし、誤字修正後も…
誤字を修正して、いざエラー解決と思いきや…
(Object doesn't support #inspect)
はてさて、同じエラーがでるぞい…
原因その2
#コンソール起動
$ rails c
#脱コンソール
irb(main):001:0> exit
$
この一連の流れですが、脱コンソールしたときに、Springが停止していると思っていました。
しかし、実際には停止しておらず、裏で起動しっぱなしです。
そのため、最新のオブジェクトが更新されなかったというワケです。
[参考資料]Springについての参考資料はこちら

Rails / Spring サポート — RubyMine
Springは、アプリケーションをバックグラウンドで実行し続けることによって開発をスピードアップする Rails アプリケーションプリローダーです。つまり、変更を加えたときにサーバーを再起動する必要はありません。RubyMine では、Spring を使用してRails ジェネレーター、tests、

現場で使えるか見極めたいRails 4.1の新機能8選
エンタープライズ領域での採用も増えてきたRuby on Railsを使ってWebアプリケーションを作るための入門連載。今回は、息抜きとして4.1の新機能を紹介。モデルで列挙型を簡単に扱えるEnumや新プリローダーSpringなど便利機能に加え、秘密鍵、署名付きトークン、CSRFプロテクションなどセキュリティ対策機能も紹...
対策 Spring再起動
そのため、Springを再起動したら、エラー表示がなくなりました。
Spring再起動の方法はこちら
$ spring status
Spring is running:
$ spring stop
Spring stopped.
$ rails c
もう一回コンソールで再起動だぜ〜〜〜
まとめ
以上、独習Railsで引っかかったエラーでした。
よくよく最後の章まで読んだら、注意事項として書いてありました(笑)
何日も悩んでたのに!!
リンク
コメント