Rails STI和“type”字符串的设置
我想我需要在Rails中使用STI。
这是我的class级:
class Person < ActiveRecord::Base end class Landlord < Person end
和people表有一个:type
列,它是一个字符串。
所以,我期望在表中看到的是,作为Person的每一行都将类型设置为“Person”,并且每个Landlord都将类型设置为“Landlord”。 但是,这不是我所看到的。 每个房东的类型都设置为“Landlord”,但所有Person的类型都设置为nil。 这很好可能是rails的工作方式,但我只是在寻找一些确认。
事实上,这是STI的工作方式。 基类在数据库中的类型为NULL(或者在ruby中为nil)。
如果需要,可以通过添加默认值为"Person"
的type
列来解决此问题。