Reputation: 12605
I have a rails model Book
, with STI-inherited models Fiction
and NonFiction
While book holds a lot of common logic, I'd like to forbid creation of the parent Book
model. Just wondering about the most elegant method for doing that in Rails - any suggestions appreciated
Upvotes: 0
Views: 511
Reputation: 11811
You can set it abstract:
class Book < ActiveRecord::Base
self.abstract_class = true
...
end
Upvotes: 3
Reputation: 230481
You could raise error in Book
's initializer
class Book
def initialize *args
raise "Can't create a Book" if self.class == Book
super # if it's not the Book, proceed with ActiveRecord initialization
end
end
Upvotes: 2