我正在尝试对我的某些模型使用单表继承。基本模型是锦标赛,我希望扩展它以创建不同类型的锦标赛。例如,我可能想添加 SingleEliminationTournament 或 DoubleEliminationTournament,这两者都将从 Tournament 继承。我有 2 个问题,它们都有些相关。
1) 我希望用户能够使用表单创建锦标赛,为此,他们需要选择一个子类。有没有办法获取所有子类并使用它们来填充选择框或类似的东西?
2) 由于此信息将进入表单,因此如果能够验证输入的类型就好了。为此,我想在 Tournament 类中添加一个验证,可以检查以确保类型有效。
显然,我可以将值硬编码到验证和表单中,但我不想这样做。任何帮助,将不胜感激。谢谢!
最佳答案
TheModel.subclasses
将为您提供需要包含的类型列表,但前提是模型在运行时加载。它们将始终以生产模式加载。您必须在开发模式下手动加载它们。
关于ruby-on-rails - 使用单表继承 (STI) 时验证类型的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184035/