[Rails] to_jsonの出力結果にインスタンスメソッドの戻り値を含める

Railsどっぷりのkadoppeです。こんばんは。

タイトルの通り、to_jsonメソッドを呼び出すことにより得られるJSONフォーマットの文字列に、モデルクラスに定義されたインスタンスメソッドの戻り値を含める方法を紹介したいと思います。どこかの誰かの参考になれば。

方法は簡単。対象となるモデルクラスで「as_json」メソッドを以下のようにオーバライドするだけです。

as_jsonメソッドの中で、親クラスの同メソッドを呼び出しています。引数のmethodsキーに対応する値として、インスタンスメソッド名の配列を渡してやることで、json出力結果にそのメソッドの戻り値が含まれるようになります。

モデルが持つ本来のプロパティを何らかの形に加工してからJSON出力を行いたい場合に使えそうですね。

それでは。