Decorating Sorcery's current_user with Draper

Posted • ~100 words • ~1 min • last updated
Tagged ruby rails devise draper sorcery

I already wrote about how to apply your decorator to the current_user when you’re using Devise. However, the trick is a bit different when applied to Sorcery.

Instead of being nil when no user is signed in, Sorcery uses an explicit false value, no nil. In your ApplicationController at app/controllers/application_controller.rb add this:

def current_user
  UserDecorator.decorate(super) unless super == false

I’m using the most recent version of Draper by the way.