Rails
JSON

ActiveModel::Errorsをいい感じのJSONで取得したい

いまどきJSからRailsのAPI叩いて更新なんてよくある話。
だけどバックエンド側のエラーレスポンスとかがいまいち定まってないことが多い。
特にバリデーションで困っちゃうことが多いのでこうしてほしい。ということを書いておく。

エラーメッセージの表示なんかではエラー箇所まで特定したいのでこんなレスポンスがほしい。

{
  "errors": {
    "base": ["入力内容に誤りがあります。"],
    "email": ["メールアドレスを入力してください。"]
  }
}

即結論なんだけど、こんな感じでJSONに直してねってはなし。

errors.to_hash(full_messages: true).to_json