has_role? with cache

Using ActiveSupport::Cache.expand_cache_key to generate cache keys, so updated resources will invalidate cache
Using refresh parameter to force invalidating cache