たぶん典型的にはActiveRecordにはenum型で入れていて、viewレイヤでI18nで翻訳してから表示する設計のとき。
erbと同じようにI18n.tが使える。
index.json.jbuilder
json.array!(@users) do |user|
json.kind t("enums.user.kind.#{user.kind}")
end
なお、そもそもJSONにはenum値をそのまま入れておいて、使うときJS側で翻訳するという方法もある。
その方法だとJSONが言語依存しないので、WebAPI単体としての設計は良いのかもしれない。
ただ今回は下記の理由からWebAPIに翻訳済みの文字列を含める設計とした。
- JS側で翻訳する方法だとI18nが使いにくい
- WebAPIとして一般に公開する予定がない(特定のWebアプリケーションからのみ使う)