Rails STI和“type”字符串的设置

时间:2011-02-01 01:54:48

标签: ruby-on-rails inheritance sti

我想我需要在Rails中使用STI。

这是我的班级:

class Person < ActiveRecord::Base
end

class Landlord < Person
end

并且人员表中有一个:type列,这是一个字符串。

所以,我期望在表中看到,作为Person的每一行都将类型设置为“Person”,并且每个Landlord都将类型设置为“Landlord”。但是,这不是我所看到的。每个房东的类型都设置为“Landlord”,但所有Person的类型都设置为nil。这很好可能是rails工作的方式,但我只是在寻找一些确认。

2 个答案:

答案 0 :(得分:11)

确实,这是STI的工作方式。基类在数据库中的类型为NULL(或者在ruby中为nil)。

答案 1 :(得分:5)

如果您想要添加type列,并且默认值为"Person",则可以解决