class Admin::BooksController < ApplicationController before_action :authenticate_user! before_action :authorized_user! def index @books = Book.all.order(created_at: :desc).page params[:page] end def new @book = Book.new end def create @book = Book.new(book_params) if @book.save flash[:notice] = 'Book created successfully.' redirect_to admin_books_path else flash[:alert] = @book.errors.full_messages.join(', ') render :new end end def edit @book = Book.find(params[:id]) end def update @book = Book.find(params[:id]) if @book.update(book_params) flash[:notice] = 'Book updated successfully.' redirect_to admin_books_path else flash[:alert] = @book.errors.full_messages.join(', ') render :edit end end def destroy @book = Book.find(params[:id]) if @book.destroy flash[:notice] = 'Book removed successfully.' else flash[:alert] = @book.errors.full_messages.join(', ') end redirect_to admin_books_path end def show @book = Book.find(params[:id]) end private def book_params params.require(:book).permit(:title, :author, :genre, :sub_genre, :pages, :copies) end end