class BooksController < ApplicationController before_action :set_book, only: [:show, :edit, :update] before_action :ensure_admin, only: [:edit, :update] def index if current_user&.admin? books = Book.all else books = Book.published end @books = books.map { |book| BooksPresenter.new(book) } end def show end def edit end def update if @book.update(book_params) redirect_to '/books' end end private def set_book @book = BooksPresenter.new(Book.find(params[:id])) end def book_params result = params.require(:book).permit(:title, :price, :published) result['price'] = result['price'].to_d * 100 result end end