songtianlun
022eae3029
- Integrate Kaminari for pagination of users - Update users_controller to paginate users - Add pagination views for first, last, next, and previous pages - Seed database with example users for testing This commit introduces pagination to the user index view, allowing for better navigation through large sets of users. The Kaminari gem is utilized to handle pagination, improving the user experience by reducing load times and enhancing usability. Additionally, the seeding script has been updated to create multiple users for better testing of the pagination feature.
69 lines
1.4 KiB
Ruby
69 lines
1.4 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
|
|
# @users = User.order(:name).page(params[:page])
|
|
@users = User.page(params[:page])
|
|
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
|