Posted at

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

More than 1 year has passed since last update.


はじめに

この記事は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についての記事一覧