はじめに
この記事はTwitterで人気のハッシュタグ#100DaysOfCode
をつけて、
100日間プログラミング学習を続けるチャレンジに挑戦した18日目の記録です。
動作環境
- ruby 2.4.1
- Rails 5.0.1
現在学習している内容のリポジトリ
本日学んだこと
- 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についての記事一覧
- Railsのactive_model_serialiserについて学ぶ_100DaysOfCodeチャレンジ10日目(Day_10:#100DaysOfCode)
- Railsのactive_model_serialiserについて学ぶ②_100DaysOfCodeチャレンジ11日目(Day_11:#100DaysOfCode)
- Railsのactive_model_serialiserについて学ぶ③_100DaysOfCodeチャレンジ12日目(Day_11:#100DaysOfCode)
- Railsのactive_model_serialiserについて学ぶ④_100DaysOfCodeチャレンジ14日目(Day_14:#100DaysOfCode)
- RailsのAMSとforemanについて学ぶ_100DaysOfCodeチャレンジ15日目(Day_15:#100DaysOfCode)
- RailsのAMSについて学ぶ_100DaysOfCodeチャレンジ16日目(Day_16:#100DaysOfCode)
- RailsのAMSについて学ぶ(has_many/has_oneとroutes)_100DaysOfCodeチャレンジ17日目(Day_17:#100DaysOfCode)