decoratorを導入する。
decoratorとは
viewを装飾するメソッドを追加したいが、モデルに書くとファット化してしまうため、decoratorに記述する。 modelとviewの間にdecoratorを挟むて感じ(たぶん)
早速実装
今回は、Decorator内でfull_name
というメソッドを定義して、
姓名をview側で表示できるようにします。
参考:
draperをインストールする。
Gimfileに追記してbundle install
gem 'draper'
rails generate draper:install
Draper がインストールされた
rails generate decorator User(モデル名)
UserDecoratorが作られます。
Decorator内にメソッドを記入。
user_decorator.rb
class UserDecorator < Draper::Decorator delegate_all def full_name "#{object.last_name} #{object.first_name}" end end
View側でdecoratorのメソッドを呼び出す
<%= current_user.decorate.full_name %>
.decorate
をつけること。
※サーバーを再起動させないと反映されない。(10分くらいロスした…)