devroom.io/drafts/2012-04-14-decorating-devise-s-current_user-with-draper.md
Ariejan de Vroom dbae98c4c0 Moar updates
2013-03-24 14:27:51 +01:00

1.1 KiB

title kind slug created_at tags
Decorating Devise's current_user with Draper article decorating-devise-s-current_user-with-draper 2012-04-14
Rails
devise
draper
decorators

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 app/controllers/application_controller.rb:

:::ruby
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.

Check here to see how to use Draper with Sorcery