Add users controller
This commit is contained in:
@@ -3,6 +3,7 @@ class ContestsController < ApplicationController
|
||||
|
||||
def index
|
||||
@contests = current_user.contests
|
||||
@user = current_user
|
||||
end
|
||||
|
||||
def show
|
||||
|
36
app/controllers/users_controller.rb
Normal file
36
app/controllers/users_controller.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
class UsersController < ApplicationController
|
||||
before_action :set_user, only: %i[ destroy edit update show ]
|
||||
|
||||
def index
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
if @user.update(user_params)
|
||||
redirect_to @user
|
||||
else
|
||||
render :edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def new
|
||||
end
|
||||
|
||||
def destroy
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_user
|
||||
@user = User.find(params[:id])
|
||||
end
|
||||
|
||||
def user_params
|
||||
params.expect(user: [ :username, :email_address ])
|
||||
end
|
||||
end
|
2
app/helpers/users_helper.rb
Normal file
2
app/helpers/users_helper.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
module UsersHelper
|
||||
end
|
@@ -4,4 +4,6 @@ class User < ApplicationRecord
|
||||
has_secure_password
|
||||
|
||||
normalizes :email_address, with: ->(e) { e.strip.downcase }
|
||||
|
||||
validates :username, presence: true, uniqueness: true
|
||||
end
|
||||
|
@@ -1,7 +1,9 @@
|
||||
.container.mt-5
|
||||
- if authenticated?
|
||||
.float-end
|
||||
= button_to "Log out", session_path, method: :delete
|
||||
.float-end.ms-3
|
||||
= button_to "Log out", session_path, method: :delete
|
||||
.float-end.mt-1
|
||||
= link_to "Settings", user_path(@user)
|
||||
|
||||
h1 Welcome!
|
||||
|
||||
|
9
app/views/users/_form.html.slim
Normal file
9
app/views/users/_form.html.slim
Normal file
@@ -0,0 +1,9 @@
|
||||
= form_with model: user do |form|
|
||||
div
|
||||
= form.label :username
|
||||
= form.text_field :username
|
||||
div
|
||||
= form.label :email_address
|
||||
= form.text_field :email_address
|
||||
div
|
||||
= form.submit
|
4
app/views/users/edit.html.slim
Normal file
4
app/views/users/edit.html.slim
Normal file
@@ -0,0 +1,4 @@
|
||||
.container
|
||||
h1 Edit settings
|
||||
|
||||
= render "form", user: @user
|
1
app/views/users/index.html.slim
Normal file
1
app/views/users/index.html.slim
Normal file
@@ -0,0 +1 @@
|
||||
.container
|
4
app/views/users/new.html.slim
Normal file
4
app/views/users/new.html.slim
Normal file
@@ -0,0 +1,4 @@
|
||||
.container
|
||||
h1 Create a new user
|
||||
|
||||
= render "form", user: @user
|
9
app/views/users/show.html.slim
Normal file
9
app/views/users/show.html.slim
Normal file
@@ -0,0 +1,9 @@
|
||||
.container
|
||||
h1 = @user.username
|
||||
|
||||
p
|
||||
|> Email:
|
||||
= @user.email_address
|
||||
|
||||
a.btn.btn-primary.mt-4 href=edit_user_path(@user)
|
||||
| Edit
|
Reference in New Issue
Block a user