【Rails】decoratorについて(Draper)

decoratorとhelperとの違い
  • Decorator・・・特定のモデルに関連した描画ロジックを実装
  • helper・・・モデルから独立し直接関係していない描画ロジックを実装
使用方法

Gemfile

gem 'draper'

コマンド

$bundle install
モデルと紐付けて作る
$rails generate decorator User

user_decorator.rbが作られる

ロジックを書く

Userに姓名のそれぞれのカラムが存在する場合

class UserDecorator < Draper::Decorator
  delegate_all

  #下記を記載

  def full_name
    "#{object.last_name} #{object.first_name}"
  end
end
ビューに書く

例えば、現在のuserのフルネームを出す

<%= current_user.decorate.full_name %>

#表示例 鈴木 太郎