デコレーター
ファットコントローラー、ファットモデルとは?
Railsの昔の方針(?)スキニーコントローラー、ファットモデル
コントローラーのコード量を少なくし、モデルを分厚くするという書き方が推奨されていたらしい。
ビジネスロック(アプリケーション特有の処理)を書き過ぎたコントローラーをファットコントローラーと呼ぶ。重複した処理などでコードの見通しが非常に悪くなってしまうので、ビジネスロックはModelやDecoratorなどに記載する様にする。
ただ、モデルにビジネスロックを書き過ぎても同じくファットモデルになってしまうので、対策の手段としてデコレーターというものが存在する。
最低限の処理をモデルに記載し、オプションで欲しい処理をデコレーターに記載。ビューで表示する際はモデルの処理をデコレーターでデコったものを表示する、といった感じ。
参考にしたサイト
Railsのファットモデル問題に対処する前に読んでほしい記事 - Qiita
Rails Viewの表示のためにDecoratorを用意してHelperとModelを助ける - Qiita
decoratorを導入して、viewの記述をすっきりさせ、modelの肥大化を回避する【Day 3/30 2nd】|Kentarotawara|note
decoratorを導入する。 - Ruby on Rails Learning Diary
GitHub - drapergem/draper: Decorators/View-Models for Rails Applications