From 42fe786575815d744521a4aebce40ecaebadf6e4 Mon Sep 17 00:00:00 2001 From: David Gay Date: Tue, 31 Oct 2023 01:08:38 -0400 Subject: Users#show --- app/controllers/users_controller.rb | 31 +++++++++++++++++++++++++++++++ app/helpers/users_helper.rb | 2 ++ app/models/user.rb | 3 +++ app/views/layouts/application.html.erb | 2 +- app/views/users/show.html.erb | 19 +++++++++++++++++++ config/routes.rb | 1 + test/controllers/users_controller_test.rb | 7 +++++++ 7 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 app/controllers/users_controller.rb create mode 100644 app/helpers/users_helper.rb create mode 100644 app/views/users/show.html.erb create mode 100644 test/controllers/users_controller_test.rb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb new file mode 100644 index 0000000..f411ace --- /dev/null +++ b/app/controllers/users_controller.rb @@ -0,0 +1,31 @@ +class UsersController < ApplicationController + before_action :set_user + before_action :validate_current_user, except: [:show] + + def show; end + + def edit; end + + def update + @user.set(user_params) + if @user.save + redirect_to run_path(@run), notice: "Saved profile." + else + render :edit, status: :unprocessable_entity + end + end + +protected + + def set_user + @user = User.find(params[:id]) + end + + def validate_current_user + redirect_to user_path(current_user) unless @user == current_user + end + + def user_params + params.require(:user).permit(:name) + end +end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb new file mode 100644 index 0000000..2310a24 --- /dev/null +++ b/app/helpers/users_helper.rb @@ -0,0 +1,2 @@ +module UsersHelper +end diff --git a/app/models/user.rb b/app/models/user.rb index 4609a80..27ff9b2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2,4 +2,7 @@ class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :rememberable + + has_many :runs, dependent: :restrict_with_error + has_many :checkpoints, through: :runs end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 3dad62b..a7ac625 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -23,7 +23,7 @@