songtianlun
cf76756f55
- Implement users index action in UsersController - Create view for displaying all users with gravatar - Update header to link to users index - Add styles for user list display This commit introduces a new feature that allows logged-in users to view a list of all registered users. It includes necessary controller actions, view templates, and styling to improve the user interface.
67 lines
1.3 KiB
Ruby
67 lines
1.3 KiB
Ruby
class UsersController < ApplicationController
|
|
include SessionsHelper
|
|
before_action :logged_in_user, only: [ :index, :edit, :update ]
|
|
before_action :correct_user, only: [ :edit, :update ]
|
|
|
|
def index
|
|
@users = User.all
|
|
end
|
|
|
|
def show
|
|
@user = User.find(params[:id])
|
|
# debugger
|
|
end
|
|
def new
|
|
@user = User.new
|
|
# debugger
|
|
end
|
|
|
|
def create
|
|
@user = User.new(user_params)
|
|
if @user.save
|
|
reset_session
|
|
log_in @user
|
|
flash[:success] = "Welcome to the Sample App!"
|
|
redirect_to @user
|
|
# redirect_to user_url(@user)
|
|
else
|
|
render "new"
|
|
end
|
|
end
|
|
|
|
def edit
|
|
@user = User.find(params[:id])
|
|
end
|
|
|
|
def update
|
|
@user = User.find(params[:id])
|
|
if @user.update(user_params)
|
|
flash[:success] = "Profile updated"
|
|
redirect_to @user
|
|
# redirect_to user_url(@user)
|
|
else
|
|
render "edit"
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def user_params
|
|
params.require(:user).permit(:name, :email, :password,
|
|
:password_confirmation)
|
|
end
|
|
|
|
def logged_in_user
|
|
unless logged_in?
|
|
store_location
|
|
flash[:danger] = "Please log in."
|
|
redirect_to login_url
|
|
end
|
|
end
|
|
|
|
def correct_user
|
|
@user = User.find(params[:id])
|
|
redirect_to(root_url) unless current_user?(@user)
|
|
end
|
|
end
|