6

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

这是我的课:

class Person < ActiveRecord::Base
end

class Landlord < Person
end

people 表有一:type列是字符串。

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

4

2 回答 2

13

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

于 2011-02-01T02:02:04.200 回答
6

如果需要,您可以通过添加默认值为 的列来解决此问题。type"Person"

于 2011-07-21T15:35:01.630 回答