有两个类:
class Apple < ActiveRecord::Base
def name
p self.name
end
end
class Fruit < AcitveRecord::Base
def name
p self.name
end
end
很明显,这个两个类是继承关系,设计表的时候不太可能建apples和fruits两个表。
此时,需要应用Rails内置的STI机制来简化设计:
新建一个表fruits,在表中加一个字段“type”,这样,在model只需这么设计:
class Fruit < ActiveRecord::Base
def name
p self.name
end
end
class Apple < Fruit
end
Apple.new.name
在数据库中只有一个表fruits,如果Apple.create,fruits表新加一条记录,此时,这条记录的“type”值为“Apple”。
Kungs 15 October 2012