Draper

drapergem/draper: Decorators/View-Models for Rails Applications – GitHub

Documentation for draper | RubyDoc.info

使い方

参考:

Rails で Draper を使ってプレゼンテーション層 (デコレーター) を実装する | Rails Webook

Draper で驚くほど Rails コードがわかりや少なったよ!| 酒と涙とRubyとRailsと

draper や active_decorator を使って View に書いてしまったロジックを減らす | GMO メディア エンジニアブログ

Rails のビューは頭悪そうなぐらいシンプルに保つべし 翻訳 | TechRacho

Rails アンチパターン: Decorator の肥大化 翻訳 | TechRacho

仕組み

参考:

draper コードリーディング | freedom-man

CollectionDecorator

参考:

Draper の CollectionDecorator を使う | Oh! My! Enter!

ActiveRecord Associationのdecorate – Qiita

decorator を自動生成しないようにする

config.generators do |g|
  ...
  g.decorator false
  ...
end

参考:

How can I disable the Draper decorator generator? – Stack Overflow

Tips

参考:

WEB API を長く運用するための仕組み化 | Start Today Technologies TECH BLOG

undefined method エラー

NoMethodError: undefined method `register_spec_type' for Draper::TestCase:Class

原因:

draper/test/minitest_integration を読み込む前に draper/test_case が読み込まれていない。

対処法:

lib/draper/railtie.rb のイニシャライザを修正する。

initializer 'draper.minitest-rails_integration' do
  ActiveSupport.on_load :minitest do
    require 'draper/test_case'
    require 'draper/test/minitest_integration'
  end
end

参考:

Suddenly register_spec_type error · Issue #679 · drapergem/draper – GitHub

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です