getting-started/bookshelf/app/controllers/books_controller.rb (44 lines of code) (raw):

# Copyright 2019 Google LLC. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. class BooksController < ApplicationController PER_PAGE = 10 def index @books = Book.query limit: PER_PAGE, last_title: params[:last_title] @last_title = @books.last&.title end def new @book = Book.new end def edit @book = Book.find params[:id] end def show @book = Book.find params[:id] end def destroy @book = Book.find params[:id] @book.destroy redirect_to books_path end def update @book = Book.find params[:id] if @book.update book_params flash[:success] = "Updated Book" redirect_to book_path(@book) else render :edit end end def create @book = Book.new book_params if @book.create flash[:success] = "Added Book" redirect_to book_path(@book) else render :new end end private def book_params params.require(:book).permit :title, :author, :published_on, :description, :cover_image end end