Rails Diary

プログラミングの学習記録です。

デコレーター

ファットコントローラー、ファットモデルとは?

Railsの昔の方針(?)スキニーコントローラー、ファットモデル
コントローラーのコード量を少なくし、モデルを分厚くするという書き方が推奨されていたらしい。

ビジネスロック(アプリケーション特有の処理)を書き過ぎたコントローラーをファットコントローラーと呼ぶ。重複した処理などでコードの見通しが非常に悪くなってしまうので、ビジネスロックはModelやDecoratorなどに記載する様にする。

ただ、モデルにビジネスロックを書き過ぎても同じくファットモデルになってしまうので、対策の手段としてデコレーターというものが存在する。

最低限の処理をモデルに記載し、オプションで欲しい処理をデコレーターに記載。ビューで表示する際はモデルの処理をデコレーターでデコったものを表示する、といった感じ。

note.com

参考にしたサイト

Railsのファットモデル問題に対処する前に読んでほしい記事 - Qiita

Rails Viewの表示のためにDecoratorを用意してHelperとModelを助ける - Qiita

decoratorを導入して、viewの記述をすっきりさせ、modelの肥大化を回避する【Day 3/30 2nd】|Kentarotawara|note

Draperの使い方 まとめ - 猫Rails

decoratorを導入する。 - Ruby on Rails Learning Diary

GitHub - drapergem/draper: Decorators/View-Models for Rails Applications

グローバルナビゲーションって何? | それからデザイン スタッフブログ