.name が普通のメソッド。
.decorated_name がデコレートされたメソッドだとした場合。
当たり前だが .name は普通に使える。
models/test.rb
ExampleClass.first.name
# => 'John'
しかしデコレートされたメソッドは、View 以外では使えない。
models/test.rb
ExampleClass.first.decorated_name
# => NoMethodError: undefined method `decorated_method'
それならば。
ActiveDecorator のデコレーターメソッドに、インスタンス本体を渡してしまおう。
models/test.rb
ActiveDecorator::Decorator.instance.decorate(ExampleClass.first).decorated_name
# => '*J*o*h*n*'
これでOK。
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
メンター受付