ROR中的多态

在重构公司网站时,发现这么一个问题:数据库中有很多种方案比如,SolutionA, SolutionB, SolutionC…他们的字段基本上都相同,我就在想,为什么不弄一个Solution模型,一个表,来统一管理存储这些数据呢?好吧,重构之:我先创建Solution模型,Solution模型多增加了一个type字段分别将SolutionA, SolutionB, SolutionC…中数据导入到Solution表中,type字段用来记录这条记录属于SolutionA、SolutionB还是SolutionC…将SolutionA, SolutionB, SolutionC…这些模型都继承到Solution下我们在控制台中可以测试到,SolutionA.all时出来的都是Solution中type为”SolutionA”的数据ROR多态时,默认的字段就是type,如果type字段已经被使用了,那你可以在Solution中使用set_inheritance_column来手动指定一个字段,比如:set_inheritance_column :object_type