Draper は、コントローラ メソッドの最後でオブジェクトを装飾するか、代わりにそれらのdecorates_associated
メソッドを使用して自動的に装飾することを推奨しています。
ビューが受け取るものを明示的に宣言するというアイデアが気に入っています (Rails の残りの部分はこのようには機能しませんが、それでもいい感じです)。したがって、コントローラーの最後ではなく、ビューの上部にあるオブジェクトを装飾することをお勧めします。
したがって、users#show でやりたいこと:
- @user = @user.decorate
%h1= @user.full_name
%p= @user.description
このようにユーザーコントローラーで装飾する代わりに
class UsersController < ApplicationController
...
def show
@user = User.find(params[:id]
@user = @user.decorate
end
end
このように物事を行うことにはキャッシングの問題があると思いますが、それはいい感じです。何か足りない場合はどうすればよいですか?私が提案しているのは悪い習慣ですか?