【Ruby on Rails】DBには追加したくないが一時的に値を追加して参照する方法
参考:
ruby - テーブルのカラムには存在しない独自に追加したプロパティも to_json で出力したい - スタック・オーバーフロー
render :json でmodelメソッドの処理結果をjsonに追加して返したい - 蚊帳の中の日記
ruby on rails - AwesomeNestedSet, virtual attribute and JSON output - Stack Overflow
やり方1
モデル attr_accessorで追加したい変数定義
attr_accessor :hoge
as_jsonをオーバーライド
def as_json(options = {}) super.as_json(options).merge(hoge: hoge) end
定義したメソッドに値をセット
res = dbmodel.all fuga = res.each do |r| r.hoge = r.methodの処理 end
コントローラー
render json: res
やり方2
モデル attr_accessorで追加したい変数定義
attr_accessor :hoge
定義したメソッドに値をセット
res = dbmodel.all fuga = res.each do |r| r.hoge = r.methodの処理 end
コントローラー
render json: res, methods: [:hoge]
resはDBの値
メソッド名に処理したメソッド
res.as_json(methods: [:メソッド名])