【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 %>
#表示例 鈴木 太郎