右辺の実行結果をキャッシュするために以下の手法が使われる事があると思います。1回目のメソッド実行時に実行結果をインスタンス変数@fooでキャッシュしておいて、2回目のメソッド実行時にはインスタンス変数の中身を返しています。endendインスタンスメソッドの場合、インスタンス変数はFooクラスのオブジェクト毎に保持されます。railsアプリ内のコードでこれをクラスメソッド内で使用する場合は注意が必要です。endendクラスメソッド内でインスタンス変数はClassクラスのオブジェクト毎に保持され、Classクラスのオブジェクトはrailsアプリケーション起動時から同じものを使い続けます。その為、DB問合せ結果をキャッシュしてしまったりすると、アプリケーション起動後DBに初めて問い合わせした値を保持し続けてしまう為、その後別のリクエストでDBを更新しても、反映されない問題が発生します。開発・運営している会社です。upLoginユーザーは見つかりませんでした。