app/controllers/book_controller.rb
class BookController < ApplicationController
before_filter :current_user!
skip_before_filter :verify_authenticity_token, :only => [:add_to_lib]
def view
@book = Book.find_by_id params[:id]
@can_borrow = @book.total_available_instances.count > @book.current_borrowers.count
@records =BorrowRecord.records_of @book
@borrowers = @book.total_borrowers.uniq
@owners = @book.open_owners
@available_instances = @book.total_available_instances
end
def search
unless params[:arg] == nil
@books = Book.where("name like ?", "%#{params[:arg]}%")
render json: @books
else
render json: {msg: 'error'}
end
end
def borrow
unless @current_user
redirect_to '/login', notice: 'You need login to do the action.'
return
end
instance = BookInstance.find_by_id params[:instance_id].to_s
@current_user.borrow instance
redirect_to :back, alert: 'Borrow book success.'
end
def new
render :add
end
def add_to_lib
unless @current_user
redirect_to new_user_session_path, notice: 'You need login to do the action.'
return
end
@current_user.create_book_instance params[:isbn], params[:is_public]
@msg = 'This book has been succeed to add to library.'
redirect_to :back, alert: @msg
end
def list
@books = Book.order('id DESC').paginate(:page => params[:page], :per_page => 24)
render :index
end
end