Rails
ActiveModelSerializer
AMS

RailsのAMSについてまとめ_100DaysOfCodeチャレンジ18日目(Day_18:#100DaysOfCode)

はじめに

この記事はTwitterで人気のハッシュタグ#100DaysOfCodeをつけて、
100日間プログラミング学習を続けるチャレンジに挑戦した18日目の記録です。

動作環境

  • ruby 2.4.1
  • Rails 5.0.1

現在学習している内容のリポジトリ

https://github.com/yuta-ushijima/notebook-api-on-rails

本日学んだこと

  • AMSについてのまとめ

AWSについてのまとめ

ここ数日に分けて、AMS(Active_Model_Serializer)について学んできました。

RailsをAPIサーバーとして使う場合、レスポンス形式としてJSONを使うことがほとんどでしょう。

その時にAMSを導入することで、次のようなメリットが挙げられます。

  • Jbuilderよりも直感的にコードがかける
  • カスタマイズ性が高い
  • 関連付けの定義も可能なので、Modelのコード肥大化が防げる (ただし、AMSはARに依存しているが独立しているので、Modelにも別途関連付けの定義は必要)

AMSにおけるCRUD操作

AMSで定義したメソッドなどはRails内でどこからでも呼び出すことができます。

そのため、AMSを介してcontrollerでメソッドを定義すれば、Modelと同じようにCRUDの実装が可能です。

AMS初級編

AMSを導入したら、attributesを定義してみましょう。

attributesによって、レスポンスに表示するフィールドの絞り込みができるので、見通しの良いJSONを作成することができます。

attributesには引数に表示させたいシンボルを渡すだけなので、Jbuilderよりも楽にかけますね。

AMS中級、上級編

AMSについて概要がわかってきたら、実装例を参考にアプリを作ってみるのもいいですね。

実装例の参考

AMSについての記事一覧