Files
fizzy/app/controllers/users/avatars_controller.rb
T
David Heinemeier Hansson 4c2f3ef0b8 Style
2025-11-03 14:21:25 +01:00

36 lines
718 B
Ruby

class Users::AvatarsController < ApplicationController
include ActiveStorage::Streaming
allow_unauthenticated_access only: :show
before_action :set_user
def show
if stale? @user, cache_control: { max_age: (30.minutes unless Current.user == @user), stale_while_revalidate: 1.week }.compact
render_avatar_or_initials
end
end
def destroy
@user.avatar.destroy
redirect_to @user
end
private
def set_user
@user = User.find(params[:user_id])
end
def render_avatar_or_initials
if @user.avatar.attached?
send_blob_stream @user.avatar
else
render_initials
end
end
def render_initials
render formats: :svg
end
end