prevent an object from being destroyed if it has related records

This is a total noob question, but how do you prevent a record from being destroyed if it has any related records. In my case, I have a book model and a page model. A book has_many pages.

How do I prevent book.destroy from destroying a book if it has associated page records? Is there a :dependent option that would do this? Do I need to do some sort of before destroy callback?

Thanks!

You could always use inheritance.

class Book < ActiveRecord::Base   def destroy     return super if page.empty?     return false   end end

Andrew Bloom wrote:

You could always use inheritance.

class Book < ActiveRecord::Base   def destroy     return super if page.empty?     return false   end end

I think you can refactor it to:

def destroy   page.empty? || super end