Railsで、モデルの内容をビューに出すときにちょっと加工するみたいな時、そのコードはどこに書けばいいんだ問題。 デザインパターンの一つにDecoratorパターンというのがあって、これを適用させるのが良いらしい。この用途ではactive_decoratorと並んで人気のgem、draperの説明がとてもわかりやすかった。 draperのREADMEで挙げられているのは、Articleという記事のモデルがあり、これの公開状態を表示させる機能を実装するという例だ。これを読み、なぜヘルパーメソッドやモデルに直に実装するんじゃだめなの?という疑問に対する答えを意訳していく。 ヘルパーメソッドを作る場合 ヘルパーメソッドで書くと、こうなる。 # app/helpers/articles_helper.rb def publication_status(article) if article.pub