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