class BookInstance < ActiveRecord::Base attr_accessible :book_id, :user_id, :public validates_presence_of :book_id, :user_id belongs_to :book belongs_to :user delegate :name, :image, :isbn, to: :book, prefix: false delegate :name, to: :user, prefix: true delegate :preferred_name, to: :user, prefix: true has_many :borrow_records has_many :borrowers, :source => :user, through: :borrow_records def borrowed? !borrow_records.where(return_date: nil).empty? end def current_borrower if borrowed? User.find_by_id borrow_records.where(return_date: nil)[0].user_id end end def be_private update_attributes public: false end def be_public update_attributes public: true end def sortable_book sortable_book = self.book sortable_book.sort_id = self.id sortable_book end end