app/helpers/cache_keys_helper.rb
module CacheKeysHelper
def locale_and_user_status(authorable = nil)
@cache_key_user ||= calculate_user_status(authorable)
"#{I18n.locale}/#{@cache_key_user}"
end
def calculate_user_status(authorable = nil)
user_status = "user"
if user_signed_in?
user_status += ":signed"
user_status += ":verified" if current_user.level_two_or_three_verified?
user_status += ":org" if current_user.organization?
user_status += ":admin" if current_user.administrator?
user_status += ":moderator" if current_user.moderator?
user_status += ":author" if authorable && authorable.author == current_user
else
user_status += ":visitor"
end
user_status
end
# when commentable id and type are used but no need to update cache on updated_at changes
def commentable_cache_key(commentable)
"#{commentable.class.name}-#{commentable.id}"
end
end