1

我看到了一个有趣的行为,并希望得到一些见解。

我有两个模型:个人和用户。用户继承自 Person。没有用户数据库表,只有人。

当我搜索使用 Person 的 find 模型创建的用户时,我希望看到返回的 person 类型的对象。但它的类型是用户。

@person = Person.find(params[:id])
@person.class 
# outputs 'User'

有人可以解释为什么它不会返回一个人对象。

4

1 回答 1

3

这是期望的行为。找到的人员行的type列包含值“用户”。因此,返回的类型User也是 。

请记住,它User也是一个Person,因此您可以将任何User实例视为一个Person实例。

于 2013-03-04T21:04:40.427 回答