Rails5 で struct を json に変換する
Ruby Ruby on Rails
Published: 2019-06-02

やったこと

struct クラスを json に変換する方法を調べました。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

調査

Rails の to_json は、ActiveSupport で上書きされてます。

速度面の要件次第では別の方法を考えた方が良いかもしれません。

app/controllers/tasks_controller.rb

class TasksController < ApplicationController
  def show
    point = Struct.new(:x, :y)
    tmp = point.new(111, 222)

    render :json => tmp.to_json
  end
end

出力結果

$ curl http://localhost:3000/tasks/1
{"x":111,"y":222}

参考