Search⌘ K
AI Features

Customize JSON in the Models Themselves

Understand how to customize JSON output directly within Rails models by overriding the as_json method. Learn to centralize JSON serialization for consistent API responses, simplify controller code, and maintain clean, reusable logic for encoding objects in your Rails applications.

Optimizing the JSON

Suppose we wanted our widget’s API to use the JSON encoding we showed above. We could certainly achieve this in our controller like so:

def show
  widget = Widget.find(params[:id])

  render json: {
    widget: widget.as_json(
      methods: [ :user_facing_identifier ],
      except: [ :widget_status_id ],
      include:  [ :widget_status ]
    )
  }

end

Of course, if we need ...