문제

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

도움이 되었습니까?

해결책 2

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

다른 팁

You can set it abstract:

class Book < ActiveRecord::Base
  self.abstract_class = true
  ...
end
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top