Rails Model.to_jsonでデータを加工して吐き出す

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

例えばDBに,AAA,BBB,CCCのように先頭のカンマが不要なデータが入っていて、対象をトリムしてjson出力したい場合などなど。

Model側でtrimするメソッドを定義

インスタンスメソッドで加工したいカラムに対してメソッドを定義する

class FooModel < ApplicationRecord
  def trim_ comma
    comma_column[1..-1]
  end
end
Controller側でmethodsで指定

to_jsonメソッド内でmethodsにシンボルを与えればよい

FooModel.all.to_json( methods:[:trim_comma] )
FooModel.first.to_json( methods:[:trim_comma] )

とするとjsonのキーにtrim_commaというキーが生成され先頭カンマが削除されたデータが出力される