在 Rails 和 Devise 选项中的单一 Table 继承

Single Table Inheritance in Rails and Devise options

如果我有一个包含标准设计行的主用户模型和一个单一 Table 继承子class 模型,我如何覆盖子[的默认设计选项=15=]?例如,主用户 class 有 "confirmable",但我不想在 STI Subclass 上使用它?

我认为这是不可能的。为什么?因为 confirmable (例如)在数据库级别上运行,涉及像 confirmed_at? 等列。

由于您只有一个数据库 table,因此您无法以某种方式建立它,即它包含一个子模型的列,而不包含另一个 - 它是一个 table。

毕竟,关心它并没有那么痛(如果有的话)。

正如安德烈所说,这是不可能的。

至于confirmable部分。您可以覆盖该模型的注册控制器,在构建子类后只需调用 skip_confirmation! confirmed_at? 列中的 assigns a value

user = UserSub.new(user_sub_params)
user.skip_confirmation!

至于其他 devise 选项,我相信有解决办法。如果需要,请编辑您的问题以询问更多选项,我将编辑答案。