hubfeenix.fi/app/controllers/profiles_controller.rb
2023-01-16 01:11:05 +02:00

65 lines
1.5 KiB
Ruby

class ProfilesController < ApplicationController
before_action :set_profile, only: %i[ show edit update destroy ]
# GET /profiles
def index
@profiles = Profile.page params[:page]
end
# GET /profiles/1
def show
end
# GET /profiles/new
def new
kind = params[:kind]
kind = Profile.types.first unless Profile.types.include?(kind)
@profile = Profile.new kind: kind
end
# GET /profiles/1/edit
def edit
authorize @profile
end
# POST /profiles
def create
@profile = Profile.new(profile_params)
@profile.member = current_member
if @profile.save
redirect_to member_path(current_member), notice: "Successfully created #{@profile.Kind} profile"
else
render :new, status: :unprocessable_entity
end
end
# PATCH/PUT /profiles/1
def update
authorize @profile
if @profile.update(profile_params)
redirect_to member_path(current_member), notice: "#{@profile.Kind} profile was updated."
else
render :edit, status: :unprocessable_entity
end
end
# DELETE /profiles/1
def destroy
authorize @profile
@profile.destroy
redirect_to member_path(current_member), notice: "#{@profile.Kind} profile was successfully destroyed."
end
private
# Use callbacks to share common setup or constraints between actions.
def set_profile
@profile = Profile.find(params[:id])
end
# Only allow a list of trusted parameters through.
def profile_params
params.require(:profile).permit(:name, :bio, :picture, :kind)
end
end