Class Physician < ActiveRecord::Base
scope :exclusive, -> { where(type: [nil, '']) }
end
Class Ophthalmologist < Physician; end
如何让范围“独家”仅供医师使用?
答案 0 :(得分:2)
我应该从:对于STI,类型永远不会是空白。如果是,则无法创建模型。
要回答您的问题,您可以使用以下方法将任何方法的范围限制为父类:
class Physician < ActiveRecord::Base
scope :exclusive, -> { where(type: [nil, '']) }
def self.inherited(mod)
super # allow rails to do its thing
class << mod
undef :exclusive
end
end
end