Decorating Devise's current_user with Draper
14 April 2012
I’ve become a big fan of decorators, especially Draper.
Decorators allow you to move view related functionality for your models in to separate decorator classes. This keeps both your models and views clean and readable.
Anyway, if you use Devise you’re provided with a
current_user helper. However, this helper returns an instance of
User - without your decorators. To enable decorators for your
current_user by default, simple add this to
def current_user UserDecorator.decorate(super) unless super.nil? end
Now, anywhere in your views where you call
current_user you’ll get a decorated version instead.