0

我有一个 rails 模型Book,带有 STI 继承的模型FictionNonFiction

虽然书中有很多共同的逻辑,但我想禁止创建父Book模型。只是想知道在 Rails 中最优雅的方法 - 任何建议表示赞赏

4

2 回答 2

3

您可以将其设置为抽象:

class Book < ActiveRecord::Base
  self.abstract_class = true
  ...
end
于 2013-05-21T19:35:39.500 回答
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
于 2013-05-21T19:26:51.560 回答