あるオブジェクトに関連するhtmlコードを生成するクラスです。 htmlの中でrubyを実行するのではなくrubyでhtmlを生成するという逆転の発想です。 雑然としたhtmlテンプレートを整理することができます。 presenterのメリット 雑然としたhtmlテンプレートを整理する 重複したhtmlコードをメソッドとして抽出することで機能追加やデバッグやリファクタリングがしやすくなる 色々なところでフォームの塊等を使い回すことができる decoratorとの違い decoratorは値を返す、ドメイン層寄り presenterはhtmlを返す、ユーザーインターフェース層寄り 参考コード presenterの大元のクラス class Presenter attr_reader :view_context delegate :link_to, :fa_icon, :params, :sor