我有一个rails模型Book
,其中包含STI继承的模型Fiction
和NonFiction
虽然本书有很多共同逻辑,但我想禁止创建父Book
模型。只是想知道在Rails中这样做的最优雅的方法 - 任何建议赞赏
答案 0 :(得分:2)
您可能会在Book
的初始化程序中引发错误
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
答案 1 :(得分:2)
您可以将其设置为抽象:
class Book < ActiveRecord::Base
self.abstract_class = true
...
end