【Ruby】親クラスのメソッドをオーバーライドする時に注意すること

最近Androidアプリの開発から久しぶりにRubyを書くことが多くなってきてちょっとハマったのでメモ

たとえばこんな場合



親クラスのメソッドの値をみつつその振る舞いを変えたい場合こんな実装をしてしまうと下記のようなエラーになります

stack level too deep (SystemStackError)



こうすることで回避できます。すっかりsuper()というものの存在を忘れていました。
僕がハマったのはRailsのActiveRecordのオブジェクトであるattributeの振る舞いを変更したいと思った時にattributeと同名のメソッドを上記の例のように実装した時に起こりました。

念のためのメモでした
スポンサーサイト

役に立ったと思ったら下記をクリックお願いします。

今後の更新の励みになります。

にほんブログ村 IT技術ブログ IT技術メモへ

にほんブログ村 IT技術ブログへ

不定期ですが技術ネタを共有して行きますのでもしよろしければ購読いただければと思います

follow us in feedly

スポンサーリンク

Tag:Ruby  Trackback:0 comment:0 

Comment

comment form
(編集・削除用):
管理者にだけ表示を許可
プロフィール

6rats

Author:6rats
こんにちは、ITベンチャーで働くエンジニアです
主に自分の周りで起きた技術的なことをメモとして書き残して行きます。
Android以外にもRuby/Ruby on RailsやFuelPHPなどなどたまにやります。基本的なスタンスとしては興味があるもしくは必要になったらいろんなことにチャレンジします。
最近はiOSアプリ開発を始めています。

購読
follow us in feedly
個人プロダクト

Androidアプリ

Twitterクライアント

Webアプリケーション

EcPriceWatch(Amazon価格の推移を計測、最安値を知らせるサービス)
Google AdSense
ブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村
ブロとも申請フォーム

この人とブロともになる